Chrome 145: поддержка Temporal API из ECMAScript 2026 для JS-разработки
-
Chrome 145 наконец-то добавил полноценную поддержку Temporal API из ECMAScript 2026. Это значит, что разработчики могут забыть о проблемах с объектом Date и перейти на надежный инструмент для работы с датами, временем и часовыми поясами.
Temporal решает ключевые боли JavaScript: неточности в вычислениях, мутабельность и хаос с часовыми поясами. Теперь код становится предсказуемым, а баги с датами уходят в прошлое. Это особенно полезно для веб-приложений, где даты - частый источник ошибок.
Что такое Temporal API и почему он лучше Date
Temporal - это новый namespace в JavaScript, похожий на Intl, но заточенный под даты и время. В отличие от Date, который мутирует значения и плохо парсит строки, Temporal использует иммутабельные объекты. Каждый тип предназначен для конкретной задачи: от мгновений до длительностей.
Например, Date легко путает локальное время с UTC, а Temporal четко разделяет понятия. Представьте приложение с расписанием встреч: с Date вы рискуете сдвинуть время из-за летнего времени, а Temporal держит все под контролем. Это часть ECMAScript 2026, которая решает накопившиеся проблемы языка.
Вот основные классы Temporal:
- Temporal.Instant - точка на временной шкале UTC, идеальна для логов и серверных меток.
- Temporal.ZonedDateTime - дата-время с часовым поясом, учитывает DST автоматически.
- Temporal.PlainDateTime - дата-время без пояса, для локальных вычислений.
- Temporal.Duration - интервалы времени, с методами add, subtract и round.
Класс Что представляет Пример использования Instant Момент в UTC Логи событий: Temporal.Now.instant()ZonedDateTime Дата-время в поясе Встречи: Temporal.Now.zonedDateTimeISO('Europe/Moscow')PlainDateTime Локальная дата-время Формы: new Temporal.PlainDateTime(2026, 3, 4, 11)Duration Интервал Расчеты: Duration.from({hours: 2, minutes: 30})Поддержка в Chrome 145: что это меняет для фронтенда
С релизом Chrome 145 Temporal выходит из экспериментального статуса и становится стабильным. Теперь можно использовать его в продакшене без полифиллов. Браузер поддерживает все ключевые методы: compare, toJSON, toLocaleString с Intl.
Раньше разработчики мучились с библиотеками вроде Moment.js или Luxon - они тяжелые и не всегда точны. Temporal встроен в движок V8, работает быстро и не требует зависимостей. Для пользователей Android и десктопа это значит меньше багов в календарях и таймерах.
Ключевые фичи в Chrome 145:
- Полная поддержка time zones из IANA базы.
- Нанесекундная точность для финансовых приложений.
- Методы round и until для округления интервалов.
- Автоматическая обработка календарей (григорианский по умолчанию).
Сравнение Date и Temporal Date Temporal Мутабельность Да, setters меняют объект Нет, иммутабельно Часовые пояса Только UTC/локальный Полная поддержка всех зон Парсинг строк Непредсказуемый Стандарт ISO 8601 с микро/наносекундами Производительность Средняя Оптимизирована в V8 Как начать использовать Temporal в проектах
Переход прост: замените new Date() на Temporal.Now или конструкторы. Код остается читаемым, но становится надежным. Например, для разницы между датами используйте since() вместо getTime().
В реальных проектах это спасает от ошибок в e-commerce с доставкой или SaaS с подписками. Chrome 145 делает API доступным для 70% пользователей сразу. Тестируйте в консоли: Temporal.Now.zonedDateTimeISO() покажет текущее время с поясом.
Практические шаги:
- Проверьте поддержку:
typeof Temporal !== 'undefined'. - Используйте Temporal.PlainDate для дат без времени:
PlainDate.from('2026-03-04'). - Для длительностей:
duration.until(otherDate)возвращает объект Duration. - Не забывайте про calendars - по умолчанию ISO, но можно переключить.
Пример кода:
const now = Temporal.Now.zonedDateTimeISO('Europe/Moscow'); const tomorrow = now.add({ days: 1 }); console.log(tomorrow.toString()); // 2026-03-05T11:25:44.123456789+03:00[Europe/Moscow]Temporal открывает новые горизонты в JS-разработке
Temporal - шаг к зрелому JavaScript, где даты больше не источник багов. Останется доработать поддержку в Safari и добавить больше календарей. Стоит поэкспериментировать с комбинациями классов для сложных сценариев вроде финансовых отчетов.
В ECMAScript 2026 это сочетается с улучшениями math и modules, делая язык мощнее. Теперь фронтендеры могут строить точные приложения без внешних либ.
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.