Temporal 的由来
在《2022 年 JS 现状》调查中,第三个 最常见的答案是"认为 JavaScript 目前缺少什么?" 是日期管理。
这导致了Temporal 提案的产生,它提供了一个标准的全局对象来替换该Date对象,并修复了多年来在 JavaScript 中处理日期时给开发人员带来很大痛苦的一些问题。
在 JavaScript 中处理日期都是很恶心的;
日期的困难导致流行的库如Moment、Day.JS和date-fns出现,试图解决这些问题。然而,该TemporalAPI 在本地解决所有问题。
Temporal将支持多个时区和开箱即用的非公历,并将提供一个简单易用的 API,使从字符串解析日期变得更加容易。此外,所有Temporal对象都是不可变的,这将有助于避免任何意外的日期更改错误。
让我们看一下 API 提供的最有用方法的一些示例Temporal。
Temporal.Now.Instant()
Temporal.Now.Instant()将返回一个最接近纳秒的 DateTime 对象。您可以使用from如下方法指定特定日期:
js
const olympics = Temporal.Instant.from('2024-07-26T20:24:00+01:00');
Temporal.PlainDate
创建一个日期,没有时间:
js
new Temporal.PlainDate(2024, 7, 26);
Temporal.PlainDate.from('2024-07-26')
Temporal.PlainTime
作为 的补充PlainDate(),我们可以使用它来创建一个没有日期的时间,使用.PlainTime():
js
new Temporal.PlainTime(20, 24, 0);
Temporal.PlainTime.from('20:24:00');
Temporal.PlainMonthDay
同样,还有PlainYearMonth只返回年份和月份(对于表示一年中的整个月份很有用):
js
const march = Temporal.PlainYearMonth.from({ month: 3, year: 2024 });
Temporal.Now.plainDateISO()
可以使用 Temporal 对象完成许多计算。可以向日期对象添加和减去各种时间单位:
js
const today = Temporal.Now.plainDateISO();
const lastWeek = today.subtract({ days: 7});
const nextWeek = today.add({ days: 7 });
和until方法since可让您了解距某个特定日期或自该日期发生以来的时间。例如,以下代码将告诉您距离巴黎奥运会还有多少天:
js
olympics.until().days
valentinesDay.since().hours
这些方法返回一个Temporal.Duration对象,该对象可用于测量具有多种不同单位和舍入选项的时间量
附加功能
可以从 Date 对象中提取年、月、日,并从 Time 对象中提取时、分、秒、毫秒、微秒和纳秒(微秒和纳秒在当前 DateTime 对象中不可用)。例如:
js
olympics.hour;
<< 20
还有其他属性,例如dayOfWeek(返回1星期一和7星期日)、daysInMonth(返回28, 29,30或31取决于月份) 和daysinYear(返回365或366取决于闰年)。
Temporal日期对象还有一个compare方法,可用于使用各种排序算法对日期进行排序。
点赞收藏支持、手留余香、与有荣焉,动动你发财的小手哟,感谢各位大佬能留下您的足迹。

往期热门精彩推荐
面试相关热门推荐
实战开发相关推荐
移动端相关推荐
Git 相关推荐
更多精彩详见:个人主页