moment.js比较日期不能正常工作吗?

时间:2017-03-15 14:19:11

标签: javascript momentjs

我正在构建一个数据表并希望将传入的日期字符串与今天的日期进行比较,然后根据结果(今天之前,今天等等)进行比较。

"createdRow": function (row, data, dataIndex) {
    var formattedDate = moment().format("DD-MMM-YYYY");
    var dateIncoming = moment(data.NextDue, 'DD-MMM-YYYY').format("DD-MMM-YYYY");
    if (dateIncoming < formattedDate) {
        dateDue = true;
    }
    if (dateDue === true && data.AssignedToName !== "With Caller") {
        $(row).css({ "color": "red" });
    }
}

所以它主要是有效的,但我有一条记录dateDue15-03-2017formattedDate也是15-03-2017,但我行上的css仍然是活化。

如果还涉及datetime,我通常会发生这种情况,并且我还有其他几个dateDue15-03-2017并且这些值正确过滤的值。

1 个答案:

答案 0 :(得分:0)

您可以使用isBeforeisAfter来比较时刻对象,而不是<

此外,您需要删除format(),因为它会在字符串中转换时刻对象,因此,如评论中所述,您在代码中比较字符串整数时刻/日期。

您的代码将是:

"createdRow": function (row, data, dataIndex) {
    var formattedDate = moment();
    var dateIncoming = moment(data.NextDue, 'DD-MMM-YYYY');
    if (dateIncoming.isBefore(formattedDate)) {
       dateDue = true;
    }
    if (dateDue === true && data.AssignedToName !== "With Caller") {
       $(row).css({ "color": "red" });
    }
}