Проблема, сравнивающая моменты в 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

Есть ли что-то, что я делаю не так?

1 ответ

Решение

Когда вы читаете ваш код, кажется, что у вас разница примерно в шесть миллисекунд. Поскольку сначала вы получаете дату окончания, а затем дату начала, это, вероятно, время выполнения этих двух строк кода. Если вы просто хотите сравнить дату, а не время, проверьте и убедитесь, что вы получаете только дату, а не время.

Посмотрите на использование moment(). StartOf('day'), которое обнулит время, и вы можете сравнить только день.

Другие вопросы по тегам