JavaScript:
Сравнение двух дат

Как это сделать:

Объекты Date в JavaScript очень пригодятся. Когда вы их сравниваете, они преобразуются в миллисекунды, начиная с 1 января 1970 года, по UTC.

let date1 = new Date('2021-07-24');
let date2 = new Date('2021-07-25');

console.log(date1 < date2); // true
console.log(date1 > date2); // false
console.log(date1.getTime() === date2.getTime()); // false

Пример вывода:

true
false
false

Углубляемся

Внутри, объекты Date — это просто миллисекунды. Ранее программистам приходилось вручную управлять операциями с датами, рассчитывая прошедшее время от какой-то точки отсчета, часто рискуя допустить ошибки. Сравнение объектов Date упрощает жизнь, хотя и не является полностью защищенным от ошибок, особенно при работе с часовыми поясами и переходом на летнее время.

Альтернативы? Конечно. Библиотеки, такие как moment.js или date-fns, помогают управлять сложными сценариями и предлагают дополнительные удобства для манипулирования датами.

Важно помнить, что прямое сравнение объектов Date (с использованием ==) сравнивает ссылки, а не значения. Используйте getTime() для точного сравнения значений. И будьте осторожны с часовыми поясами при разборе дат; легко запутаться, если быть невнимательным.

Смотрите также