Как сравнить только дату в момент.js


Я новичок в данный момент.js. У меня есть объект Date и время, связанное с ним. Я просто хочу проверить, если эта дата больше или равна сегодняшней дате,исключая время при сравнении.

 var dateToCompare = 2015-04-06T18:30:00.000Z

Я просто хочу проверить, если dateToCompare равен или больше, чем сегодняшняя дата. Я проверил isSame момента.js, но он, кажется, принимает строку и только часть даты. Но я не хочу конвертировать свою дату в строку или манипулировать ею дальше. Потому что я беспокоюсь,что javascript может сделать что-то неожиданное при преобразовании этой даты в строку(например, добавление смещения или dst и т. д.), Или я могу ошибаться.

пример isSame () из docs

moment('2010-10-20').isSame('2010-10-20');

также я ищу что-то вроде isSame() и isAfter (), Объединенных как одно утверждение.

мне нужно сравнить, используя момент.только js.Пожалуйста, не предлагайте простое сравнение дат javascript.

2 64

2 ответа:

документы довольно ясно что вы передаете второй параметр для указания детализации.

Если вы хотите ограничить детализацию до единицы, отличной от миллисекунд, передайте единицы в качестве второго параметра.

moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true

поскольку второй параметр определяет точность, а не только одно значение для проверки, использование day будет проверять год, месяц и день.

для вашего случая вы бы прошли 'day' как второй параметр.

тем временем вы можете использовать isSameOrAfter способ:

moment('2010-10-20').isSameOrAfter('2010-10-20', 'day');