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

Связанные темы

Ресурсы