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

时间:2016-05-31 05:56:39

标签: javascript angularjs mongodb

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

$scope.entries[0].formattedDate === $scope.days[0]
$scope.entries[i].formattedDate.valueOf() === $scope.days[0].valueOf() //true

此angularjs计划的目标是:

  1. 生成当前周的日期(作为Javascript日期对象的数组)
  2. 从mongodb获取一堆JSON对象。 (这些对象具有名为“date”的属性。此“date”属性采用以下格式:ISODate("2016-05-18T04:44:42.067Z")
  3. 将每个mongo项目与生成日期进行比较,告诉用户是否有任何匹配(仅限日期!忽略时间)
  4. 这是我生成一周中几天的代码,效果很好:

    $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;
    };
    

    我只想知道这一天是否匹配,而不是时间。我正在使用此函数从Mongodb中检索的每个项目中删除时间:

    var removeHours = function (date) {
        date.setHours(0, 0, 0, 0);
        return date;
    };
    

    在比较日期时,我绝对卡住了!好像我已经尝试了一切。当我在console.log这两个日期时,它们是相同的。我可能不知道有关JS对象的东西,我希望有人可以提供一个简单易用的解决方案。

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

0 个答案:

没有答案