🔥 Боль работы с JS объектом Date закончится в этом году
В 2024 году JavaScript получил много обновлений и новых функций, которые находятся на 3 и 4 стадии:
- 3 стадия - Функция принята, но ещё рассматривается как проект и может значительно измениться. Тем не менее, в конечном итоге её включат в стандарт, за исключением маловероятных причин
- 4 стадия - Функция одобрена и находится на стадии валидации. Изменения больше не запрашиваются, кроме необходимых доработок, выявленных при тестировании
Сегодня рассмотрим Temporal API — глобальный объект, который улучшает работу с датой и временем. Одна из его особенностей — использование отдельных классов для даты и времени. На данный момент Temporal API находится на 3 стадии.
Несколько полезных методов и их API:
Temporal.Now - предоставляет методы для получения текущего времени и даты.
Temporal.Now.instant(): Temporal.Instant - возвращает текущее системное время.
Temporal.Now.timeZoneId(): string - возвращает текущую системную тайм-зону.
Temporal.Now.zonedDateTimeISO(timeZone: object | string = Temporal.Now.timeZone()) : Temporal.ZonedDateTime - возвращает текущие дату и время в текущем часовом поясе в формате ISO.
Temporal.Now.plainDateISO(timeZone: object | string = Temporal.Now.timeZone()) : Temporal.PlainDate - возвращает текущую дату в текущем часовом поясе в формате ISO
Temporal.Now.plainTimeISO(timeZone: object | string = Temporal.Now.timeZone()) : Temporal.PlainTime - возвращает текущее время в текущем часовом поясе в формате ISO
Temporal.Now.plainDateTimeISO(timeZone: object | string = Temporal.Now.timeZone()) : Temporal.PlainDateTime - возвращает дату и время вместе.
Приведу несколько примеров:
Temporal.Instant - предоставляет фиксированную точку во времени ("exact time") без учёта календаря и местоположения.
Примеры:
Temporal.PlainDate - календарная дата, не связанная с определённым временем или часовым поясом. По такому же принципу работают Temporal.PlainTime, Temporal.PlainDateTime, Temporal.PlainYearMonth и Temporal.PlainMonthDay.
Примеры:
Temporal.Duration - представляет временной отрезок. Его можно использовать для арифметики с датами или для вычисления разницы между временными объектами
Примеры:
🧐 Как вы думаете, облегчит ли этот глобальный объект работу с датой и временем или все же нет?
🧐 Будете ли использовать Temporal вместо Date, когда он будет доступен и безопасен в разработке?
Буду рад любой обратной связи (коммент, реакция) ❤
Больше о фронтенд разработке в моем ТГК: