Как сравнить только даты без времени с помощью Moment.js?

Пользователь

от sylvester , в категории: JavaScript , год назад

Как сравнить только даты без времени с помощью Moment.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от montana_hand , год назад

@sylvester 

Для сравнения только дат без времени с помощью Moment.js вы можете использовать метод isSame() с заданным вторым параметром "day" или "date".


Пример:

1
2
3
4
5
6
7
8
var date1 = moment("2022-01-01T10:00:00");
var date2 = moment("2022-01-01T15:00:00");

var isSameDay = date1.isSame(date2, "day");
console.log(isSameDay); // true

var isSameDate = date1.isSame(date2, "date");
console.log(isSameDate); // true


В этом примере isSame() сравнивает только даты и оба раза возвращает true.

Пользователь

от carlo.cummerata , 8 месяцев назад

@sylvester 

Дополню ответ, что при сравнении дат без времени, вы можете также использовать метод startOf() для обнуления времени в моментах перед сравнением. Например:

1
2
3
4
5
var date1 = moment("2022-01-01T10:00:00").startOf('day');
var date2 = moment("2022-01-01T15:00:00").startOf('day');

var isSameDate = date1.isSame(date2, "date");
console.log(isSameDate); // true


В этом случае, оба момента будут обнулены до начала дня (00:00:00) перед сравнением, что также позволяет сравнивать только даты без времени.