Temporal
为处理日期和时间提供标准对象和功能。
状态
本提案目前处于 第 3 阶段,并由 Richard Gibson、Bradley Farias 和 Daniel Ehrenberg 对第 3 阶段进行了审查。
注意:虽然这个提案的 API 预计不会改变,但在 IETF 对时区/日历字符串序列化格式进行标准化之前,这个提案的实现者必须不发布未标记的 Temporal 实现。请参阅 #1450 了解更新。
这个提案现在在 ECMAScript 引擎实现者手中,所以对 API 的修改要求非常高。尽管如此,由于 JS 引擎中实现的反馈,可能会发生变化。按照第三阶段提案的惯例,对规范的编辑修改和对规范、polyfill、测试和文档的 bug 修复也在进行中。在第三阶段,还在增加额外的测试和文档内容。
Champions
- Philipp Dunkel (@pipobscure)
- Maggie Johnson-Pint (@maggiepint)
- Matt Johnson-Pint (@mattjohnsonpint)
- Brian Terlson (@bterlson)
- Shane Carr (@sffc)
- Ujjwal Sharma (@ryzokuken)
- Philip Chimento (@ptomato)
- Jason Williams (@jasonwilliams)
- Justin Grant (@justingrant)
概述/动机
日期是 ECMAScript 中长期存在的痛点。本文提出的 Temporal,是一个全局对象,它作为一个顶层命名空间(像 Math 一样),为 ECMAScript 语言带来了现代的日期/时间 API。关于动机的详细分解,请看:修复 JavaScript 日期。
原则
- 所有时间对象都是不可改变的。
- 日期值可以在当地的日历系统中表示(为什么呢?)。但它们应该可以与预期的格里高利历(公历)相互转换。
- 所有的时间——日期值都是基于标准的 24 小时时钟。
- 不表示 闰秒。
规格文本
规格文本可以在 这里 找到。
Polyfill
我们建立了一个 非生产性的 polyfill 来验证这个建议。该提案的支持者将很快开始生产就绪的填充物的工作,一旦开始,它将被链接到这里。如果您正在开发一个不同的生产质量的polyfill,请告诉我们,我们也可以把它链接到这里。
当查看 参考文档 时,polyfill 会自动加载到您的浏览器中,所以您可以通过打开浏览器的开发者工具控制台来试用它。
注意:我们鼓励您对polyfill进行实验,但不要在生产中使用它! API可能会根据实现者的反馈而改变,并且当前的非生产型polyfill对于某些操作来说非常缓慢。
文档
参考文档和示例可以在 这里 找到。
在 这里 可以找到一本食谱来帮助你入门和了解Temporal的来龙去脉。