- Temporal 取代了 Date,提供了一个更准确、更直观的 API,专为日期、时间、时区和日历而设计。
- 它是不可变的:操作会创建新对象,从而避免与可变 Date 对象相关的常见错误。
- 它支持时区、UTC-本地转换和非公历,使其成为全球应用的理想选择。
- 高精度(纳秒级),包含 Temporal.Now,添加/使用,并且允许在开发原生支持时使用 polyfill。

您是否曾在与他人合作时感到沮丧 日期 y 小时 en JavaScript?如果答案是肯定的,请不要担心,您并不孤单。多年来,开发人员必须处理一个对象 Date 这不仅令人困惑,而且具有很大的局限性。随着时间的推移,这个问题导致许多人依赖外部库,例如 Moment.js, 卢克森 o 日期-fns 实现更加全面、灵活的功能。
然而,事情正在发生变化。 JavaScript 随着对象的引入而发展 Temporal,旨在消除与管理相关的麻烦的 API 日期 y 小时这项新标准是其中之一 最具颠覆性的数字技术它配备了现代化的工具、更高的精度和更直观的界面。如果您想了解此 API 如何彻底改变您的工作方式,请继续阅读。
Temporal 对象是什么?
时间对象 是集成到的新 API JavaScript 旨在取代过时的物体 Date。它的创建是为了解决许多固有的限制和问题 Date,提供一种更准确、更易于使用和更灵活的替代方案。
这个新模块提供了不同类型的数据和方法,专门用于 日期, 小时, 时区 y 日历。 Temporal 的迷人之处在于,它不仅默认使用公历,还支持其他非西方历法,促进全球和文化应用程序的发展。

在项目中使用 Temporal 的原因
主要原因是 颞 受到开发人员如此多关注的原因是因为它解决了对象 Date 永远无法正确解决。
- 不可变 API: Temporal 的突出特点之一是它的不变性。这意味着一旦创建了Temporary对象,它的值就不能改变,并且任何操作都会生成一个新的对象。这可以防止
Date易變的。 - 支持所有时区: 借助 Temporal,您可以轻松地使用特定时区,并在 UTC 和当地时间。
- 支持非公历: Temporal 允许您使用文化日历,这对于开发更具包容性的应用程序很有用。
- 更高的精度: Temporal 支持精确到纳秒的计时,使其成为需要高精度的应用的理想选择。
Temporal 中的基本数据类型
Temporal 引入了两种主要数据类型,旨在适用于不同的用例:
- «简单» 数据: 代表 日期 u 小时 而不将其与任何特定时区关联。它们非常适合处理与地理位置无关的日期,例如周年纪念日或重复事件。
- «分区» 数据: 这些数据包括时区信息,非常适合管理依赖当地时间的事件或任务,例如全球会议。
Temporal 的主要方法
Temporal API 包含多种工具,有助于管理 日期 y 小时。这里我们解释一些最有用的:
时间.现在
时间.现在 是获取当前日期和时间的起点。它提供的方法包括:
- 立即的(): 以对象形式返回当前时间
Temporal.Instant. - plainDateISO(): 提供当前日期格式 ISO.
- zonedDateTimeISO(): 将当前日期、时间和时区组合成一个对象
Temporal.ZonedDateTime.
加减时间的方法
Temporal 最令人期待的功能之一是它允许我们轻松地添加或减去 时代报 一 日期 u 时间 具体的。方法如 add() y subtract() 使这些操作非常直观。
使用 with() 进行个性化
Temporal 还包括方法 with(),它允许您修改对象的特定属性。 日期 o 时代报 创建一个新的。
全球发展优势
在日益全球化的世界中, 日期 y 小时 在国际时区,它成为一项基本要求。 Temporal 在这方面脱颖而出,得益于其对 时区。这不仅使不同区域之间的转换更加容易,而且还可以根据 夏天的时候.
Temporal 的现状和未来
虽然 Temporal 尚未在所有浏览器中完全实现,但它已经处于该过程的第 3 阶段。 TC39,这表明它正在越来越接近成为官方标准。同时,它也可以被以下 polyfill 使用: @js-temporal/polyfill,这有助于其在当前项目中的实施。
如果你正在寻找一种方式来与 日期 y 小时 Temporal 对象功能更强大,错误更少,绝对是您应该考虑的工具。这一进步有望大大简化我们作为开发人员的生活,让我们忘记我们在使用对象时遇到的问题 Date 几十年来。
