苦等五年,JavaScript全新内置对象Temporal即将上线,超200个API引领日期时间处理新时代!

286 阅读2分钟

JavaScript的 Temporal 对象自提出以来,经过五年的讨论和审查,终于进入了 Stage 3 阶段,并且预计将解决 Date 对象的一系列问题。下面是关于 Temporal 的一些重要信息:

图片

Temporal的背景与现状:

  1. 1. 为什么需要Temporal:
    JavaScript的内置 Date 对象长期以来因其设计缺陷受到批评,主要问题包括:

    为了解决这些问题,ECMA国际技术委员会(TC39)提出了 Temporal 提案。这个提案在经过多年的讨论后,已进入 Stage 3,意味着API设计稳定,且不再有重大变动,等待浏览器和引擎的实现。

    • • 时区处理混乱。
    • • API 使用不直观。
    • • 缺乏不可变性(可以修改 Date 对象,容易产生不一致)。
    • • 对闰秒、夏令时和跨时区操作的处理不够精确。
  2. 2. 浏览器支持:
    目前,部分浏览器已开始实验性支持 Temporal。例如,Firefox Nightly版本已经内置了 Temporal 对象。其他主流浏览器可能会在未来逐步跟进原生支持。

  3. 3. 文档支持:
    MDN(Mozilla Developer Network)已经更新了详细的文档,涵盖了超过270页关于 Temporal 的API参考和使用指南。

  4. 4. API规模:
    Temporal 提供了超过200个API,涵盖了日期、时间、时区、持续时间等操作。它的功能非常强大,能够满足开发者对日期和时间操作的广泛需求。

Temporal 提供的核心功能:

  • • 不可变性Temporal 对象是不可变的,每次修改都会返回一个新的实例。
  • • 时区支持:比 Date 更加精确地支持时区的处理。
  • • 高精度操作:能够更好地处理闰秒、夏令时等复杂的日期时间情况。
  • • 丰富的API:通过200多个API,涵盖日期、时间、时区、持续时间的计算等操作,满足现代开发需求。

如何使用 Temporal

由于浏览器对 Temporal 的支持尚未普及,开发者可以通过 Polyfill 来使用 Temporal。你可以通过以下 npm 包来安装 Temporal 的 Polyfill:

  1. 1.  @js-temporal/polyfill
  2. 图片
  3. 2. temporal-polyfill
  4. 图片**
    **

这些Polyfill会模拟 Temporal 的行为,并确保在不支持 Temporal 的环境中也能正常工作。

总结:

Temporal 的引入是 JavaScript 日期和时间操作的一个重大改进,它将大大简化开发者的工作,并提供更加精确、灵活的日期时间处理方式。

随着浏览器对 Temporal 的支持逐渐普及,它会成为处理日期和时间的标准工具。