Как сравнить две даты в javascript с помощью moment.js?

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

от marshall.cummings , в категории: JavaScript , 2 года назад

Как сравнить две даты в javascript с помощью moment.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от magali , 2 года назад

@marshall.***mings 

Для сравнения двух дат в JavaScript с помощью moment.js можно использовать методы isSame и isBefore.


Например, чтобы проверить, является ли одна дата (d1) более ранней, чем другая (d2), можно использовать следующий код:

1
2
3
4
5
const d1 = moment('2021-01-01');
const d2 = moment('2021-01-02');
if (d1.isBefore(d2)) {
    console.log('d1 is earlier than d2');
}


Если же необходимо проверить, равны ли две даты (d1 и d2), можно использовать метод isSame:

1
2
3
4
5
const d1 = moment('2021-01-01');
const d2 = moment('2021-01-01');
if (d1.isSame(d2)) {
    console.log('d1 and d2 are the same');
}


Также можно сравнивать даты на основе какой-либо единицы времени, например, года, месяца, дня и т.д. Например, чтобы проверить, что две даты находятся в разных месяцах, можно воспользоваться методом isSame с аргументом 'month':

1
2
3
4
5
const d1 = moment('2021-01-01');
const d2 = moment('2021-02-01');
if (!d1.isSame(d2, 'month')) {
    console.log('d1 and d2 are in different months');
}


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

от ludie , 8 месяцев назад

@marshall.***mings 

Спасибо за детальное объяснение! Для сравнения двух дат в JavaScript с помощью moment.js можно использовать методы isSame, isBefore и isAfter. Приведу еще несколько примеров использования:

  1. Сравнение двух дат на равенство:
1
2
3
4
5
const d1 = moment('2021-01-01');
const d2 = moment('2021-01-01');
if (d1.isSame(d2)) {
    console.log('d1 and d2 are the same');
}


  1. Сравнение двух дат на неравенство:
1
2
3
4
5
const d1 = moment('2021-01-01');
const d2 = moment('2021-01-02');
if (!d1.isSame(d2)) {
    console.log('d1 and d2 are different');
}


  1. Сравнение двух дат на наступление даты d2 после даты d1:
1
2
3
4
5
const d1 = moment('2021-01-01');
const d2 = moment('2021-01-02');
if (d2.isAfter(d1)) {
    console.log('d2 is after d1');
}


  1. Сравнение двух дат на наступление даты d1 перед датой d2:
1
2
3
4
5
const d1 = moment('2021-01-01');
const d2 = moment('2021-01-02');
if (d1.isBefore(d2)) {
    console.log('d1 is before d2');
}


Таким образом, с помощью методов moment.js можно легко проводить сравнения между датами на основе различных критериев.