Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как сравнить две даты

Короткий ответ

Операторы < и > сравнивают даты как числа миллисекунд:

const start = new Date(2025, 0, 10);
const end = new Date(2025, 1, 1);
 
console.log(start < end);

Результат:

true

Равенство

Для проверки равенства сравнивайте числа из getTime():

const a = new Date(2025, 4, 1);
const b = new Date(2025, 4, 1);
 
console.log(a.getTime() === b.getTime());

Результат:

true

Один и тот же день

Чтобы не учитывать время, сравните год, месяц и день:

const sameDay = (a, b) =>
  a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
 
console.log(sameDay(new Date(2025, 4, 1, 9, 0), new Date(2025, 4, 1, 18, 30)));

Результат:

true

Дата уже прошла

Сравните с текущим моментом:

const deadline = new Date(2020, 0, 1);
 
console.log(deadline < new Date() ? 'expired' : 'active');

Результат:

expired

Частая ошибка

=== сравнивает объекты дат по ссылке, поэтому две одинаковые даты не равны:

const a = new Date(2025, 4, 1);
const b = new Date(2025, 4, 1);
 
console.log(a === b);

Результат:

false

Функции из этого ответа

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.