Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能';我似乎无法比较两个日期对象。一个来自mongo,一个生成_Javascript_Angularjs_Mongodb - Fatal编程技术网

Javascript 我能';我似乎无法比较两个日期对象。一个来自mongo,一个生成

Javascript 我能';我似乎无法比较两个日期对象。一个来自mongo,一个生成,javascript,angularjs,mongodb,Javascript,Angularjs,Mongodb,编辑,我已经能够通过比较日期的值而不是日期本身来解决这个问题: $scope.entries[0].formattedDate === $scope.days[0] $scope.entries[i].formattedDate.valueOf() === $scope.days[0].valueOf() //true angularjs计划的目标是: 生成当前周的天数(作为Javascript日期对象数组) 从mongodb获取一组JSON对象。(这些对象有一个名为“日期”的属性。此“日期”

编辑,我已经能够通过比较日期的值而不是日期本身来解决这个问题:

$scope.entries[0].formattedDate === $scope.days[0]
$scope.entries[i].formattedDate.valueOf() === $scope.days[0].valueOf() //true
angularjs计划的目标是:

  • 生成当前周的天数(作为Javascript日期对象数组)
  • 从mongodb获取一组JSON对象。(这些对象有一个名为“日期”的属性。此“日期”属性的格式如下:
    ISODate(“2016-05-18T04:44:42.067Z”)
  • 将每个mongo项目与生成的日期进行比较,告诉用户是否匹配(仅日期!忽略时间)
  • 这是我用来生成一周中的几天的代码,它运行良好:

    $scope.getWeek = function (num) {
        var curr = new Date;
        curr.setDate(curr.getDate() - (num * 7));
        var days = [];
        for (var i = 0; i < 7; i++) {
            days.push(new Date(curr.setDate(curr.getDate() - curr.getDay() + i)));
            days[i].setHours(0, 0, 0, 0);
        }
        $scope.days = days;
    };
    
    当谈到比较日期时,我完全被卡住了!似乎我已经尝试了所有方法。当我在console.log上记录这两个日期时,它们是相同的。我可能不知道关于JS对象的一些事情,我希望有人能提供一个简单易用的解决方案

    $scope.entries[i].formattedDate == $scope.days[0] // false
    

    尝试使用valueOf,
    $scope.entries[i].formattedDate.valueOf()==$scope.days[0].valueOf()
    console.log($scope.entries[0].formattedDate.valueOf()===$scope.days[0].valueOf());
    仍然是false。我真的不知道,
    console.log($scope.entries[0].formattedDate.valueOf()==$scope.days[0].valueOf())
    show?显示为false。console.log($scope.entries[0].formattedDate.valueOf(),'',$scope.days[i].valueOf());show
    1464062400000”“146449400000
    $scope.days[i].valueOf()无论给定的日期是什么,似乎都具有相同的值。并且该值与生成的日期不同…^最后一条注释不是真的。我通过按日期的值引用日期,以某种方式使其起作用…不确定为什么会起作用,但比较实际的日期对象不起作用。万岁!尝试使用valueOf,
    $scope.entries[i] .formattedDate.valueOf()==$scope.days[0].valueOf()
    显示
    1464062400000“146449400000
    $scope.days[i].valueOf()无论给定的日期是什么,似乎都具有相同的值。该值与生成的日期不同…^最后一条评论不是真的。我通过引用日期的值,以某种方式使其起作用…不确定为什么会起作用,但比较实际的日期对象不起作用。万岁!
    $scope.entries[i].formattedDate == $scope.days[0] // false