🧱 Суть

Temporal API – это новый стандарт JavaScript для работы с датами и временем.

Он создан как замена старому объекту:

Date

который имеет множество исторических проблем.

Пример:

Старый подход:

new Date("2026-04-28");

Новый подход:

Temporal.PlainDate.from("2026-04-28");

📦 Проблема

1. Date имеет сложное и непредсказуемое поведение

Например:

new Date("2026-04-28");

может по-разному интерпретироваться из-за часовых поясов.

2. Сложно работать с календарными операциями

Например:

date.setDate(date.getDate() + 1);

У Date легко получить проблемы при работе с:

  • месяцами
  • часовыми поясами
  • переходом на летнее время

3. Date смешивает разные понятия

Одна сущность используется сразу для:

  • даты без времени
  • времени
  • момента во времени
  • часового пояса
    Из-за этого появляются ошибки.

✅ Решение

Использовать:

Temporal API

Он разделяет разные типы времени:

  • дата без времени → Temporal.PlainDate
  • дата + время → Temporal.PlainDateTime
  • момент времени → Temporal.Instant
  • дата с часовым поясом → Temporal.ZonedDateTime

💻 Код

Создание даты:

const date = Temporal.PlainDate.from("2026-04-28");

Добавление дней:

const tomorrow = date.add({ days: 1 });

Добавление месяцев:

const nextMonth = date.add({ months: 1 });

Получение частей даты:

date.year;
date.month;
date.day;

Преимущества Temporal

  • Нет неожиданных проблем с часовыми поясами
  • Удобное добавление дней, месяцев и лет
  • Более понятный API
  • Разделение даты и времени
  • Меньше ошибок при работе с календарём

Важный момент

Temporal не заменяет Date мгновенно.

Старый код:

new Date()

останется актуальным ещё долго.

Но для новых проектов постепенно стоит использовать Temporal.

🎯 Вывод

  • Temporal API – новый стандарт работы с датами в JavaScript
  • он решает основные проблемы Date
  • PlainDate подходит для обычных календарных дат
  • больше не нужно вручную бороться с часовыми поясами и сложными операциями
  • для нового кода Temporal – более безопасный выбор

🔗 Связано