Сравнение дат в JavaScript

Объекты Date можно сравнивать обычными операторами <, >, <= и >=. При сравнении JavaScript использует время в миллисекундах.

Раньше или позже

Проверим, какая из двух дат наступит раньше.

const start = new Date(2026, 6, 12);
const end = new Date(2026, 6, 15);

console.log(start < end); // true
console.log(end > start); // true

Так же можно проверить, не прошел ли срок.

const deadline = new Date(2026, 6, 12, 18, 0);

if (new Date() > deadline) {
  console.log('Срок прошел');
}

Один момент времени

Две даты с одинаковыми значениями все равно являются разными объектами. Поэтому оператор === не подходит для проверки одного момента времени.

const first = new Date(2026, 6, 12, 9, 0);
const second = new Date(2026, 6, 12, 9, 0);

console.log(first === second); // false

Для такой проверки получите timestamp методом getTime().

console.log(first.getTime() === second.getTime()); // true

Один календарный день

Иногда время не важно: нужно узнать, относятся ли две даты к одному дню. В этом случае сравнивают год, месяц и день месяца.

function isSameDay(first, second) {
  return first.getFullYear() === second.getFullYear()
    && first.getMonth() === second.getMonth()
    && first.getDate() === second.getDate();
}

const first = new Date(2026, 6, 12, 9, 0);
const second = new Date(2026, 6, 12, 20, 30);

console.log(isSameDay(first, second)); // true

Методы getFullYear(), getMonth() и getDate() используют часовой пояс компьютера. Если даты нужно сравнивать по UTC, используйте методы с приставкой UTC.