JavaScript 中的问题比较时刻

Issue Comparing Moments in JavaScript

我有以下代码检查开始日期是否 >= 到结束日期。几乎每次我比较两个相同的日期时,日期之间的差异都小于 0。

这是我的代码:

var end = $('#job_end').datetimepicker('date');
var start = $('#job_start').datetimepicker('date');

console.log(start);
console.log(end);
console.log(start.diff(end));
console.log(start.isSameOrAfter(end));

这是这段代码的输出:

Moment {_isAMomentObject: true, _isUTC: false, _pf: {…}, _locale: Locale, _d: Wed Jul 25 2018 14:15:00 GMT-0500 (Central Daylight Time), …}
Moment {_isAMomentObject: true, _isUTC: false, _pf: {…}, _locale: Locale, _d: Wed Jul 25 2018 14:15:00 GMT-0500 (Central Daylight Time), …}
-6
false

我做错了什么吗?

通过阅读您的代码,您似乎有大约 6 毫秒的差异。由于您首先获得结束日期,然后是开始日期,因此这可能是这两行代码的执行时间。如果您只是想比较日期而不是时间,请检查并确保您只获取日期而不是时间。

看看使用 moment().startOf('day'),它将时间清零,您只能比较日期。