Temporal API
Новый стандартный API для работы с датами и временем (замена Date).
Зачем нужно
Temporal решает проблемы Date: иммутабельность, поддержка часовых поясов, точные вычисления. Stage 3 proposal, уже в некоторых браузерах. Замена moment.js/date-fns.
Где используется
- Точная работа с часовыми поясами
- Календарные вычисления (бизнес-дни)
- Планирование и scheduling
Code
// Текущая дата и время
const now = Temporal.Now.zonedDateTimeISO;
const today = Temporal.Now.plainDateISO;
// Создание даты
const date = Temporal.PlainDate.from('2026-04-07');
const time = Temporal.PlainTime.from('14:30:00');
const dt = Temporal.PlainDateTime.from('2026-04-07T14:30');
// С часовым поясом
const zoned = Temporal.ZonedDateTime.from({
year: 2026, month: 4, day: 7,
hour: 14, minute: 30,
timeZone: 'Europe/Moscow'
});
// Арифметика (иммутабельная)
const next = date.add({ days: 30 });
const prev = date.subtract({ months: 1 });
const diff = date.until(next); // Temporal.Duration
// Сравнение
Temporal.PlainDate.compare(date1, date2); // -1, 0, 1
// Duration
const dur = Temporal.Duration.from({ hours: 2, minutes: 30 });
console.log(dur.total('minutes')); // 150
// Пока Temporal не везде — polyfill: @js-temporal/polyfill