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

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

Давайте сравним некоторые даты:

const date1 = new Date('2023-04-01T00:00:00Z');
const date2 = new Date('2023-04-02T00:00:00Z');

// Находится ли date1 до date2?
console.log(date1 < date2); // true

// Является ли date1 тем же, что и date2?
console.log(date1.getTime() === date2.getTime()); // false

// Сколько дней между?
const diffTime = Math.abs(date2.getTime() - date1.getTime());
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); 
console.log(diffDays); // 1

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

true
false
1

Подробнее

Раньше даты представляли собой кучу форматов и запутанные расчеты. С JavaScript (и, соответственно, TypeScript) объект Date упростил вещи, стандартизировав то, как мы работаем со временем.

Альтернативы? Конечно. Библиотеки, такие как moment.js или date-fns, расширяют работу с датами дополнительной функциональностью. Но для базовых сравнений? Простота нативного Date зачастую справляется с задачей.

Под капотом Date.getTime() возвращает миллисекунды с эпохи (1 января 1970 года). Сравнение этих значений устраняет странности часовых поясов и високосных секунд, сводя всё к числам.

См. также