随着 JavaScript 语言的不断发展,ES12 提供了许多新特性,其中包括新增的时间日期类型。本文将详细讲解这些类型,并提供示例代码以帮助读者更好地了解它们的用法。
Temporal
ES12 引入了全新的标准库 Temporal
,用于处理日期、时间以及时区。它提供了三个主要的类:Temporal.Instant
、Temporal.ZonedDateTime
和 Temporal.Duration
。
Temporal.Instant
Temporal.Instant
用于表示时间轴上的单个瞬间。它有 now()
方法可以获取当前时间。另外,它还提供了许多有用的方法来操作时间,例如加、减、比较等。
示例代码:
-- -------------------- ---- ------- ----- --- - ----------------------- ----- ------ - -------------------------------- ----- -- ---- ----- ---- - ------------------------------------- ------ - ---- ---------------------------- -- -------------------------------- ------------------------------- -- -------------------------------- ----------------------------- -- --------------------------------
Temporal.ZonedDateTime
Temporal.ZonedDateTime
用于表示带有时区信息的日期时间。它可以从 Temporal.Instant
对象创建,也可以通过 from()
方法创建。它还提供了一些方便的方法来获取日期、时间、时区等信息。
示例代码:
-- -------------------- ---- ------- ----- ------------- - ----------------------------- -------- ---- --------- ----- --- -------------------------------------- -- ------------------------------------- -------------------------------- -- ---- --------------------------------- -- - ------------------------------- -- - -------------------------------- -- -- ---------------------------------- -- - ---------------------------------- -- - --------------------------------------- -- - --------------------------------------- -- -----
Temporal.Duration
Temporal.Duration
用于表示时间间隔。它可以从不同的单位创建,例如毫秒、秒、分钟、小时、天等。它还提供了一些有用的方法来比较、添加、减去时间间隔等。
示例代码:
const duration = Temporal.Duration.from('PT48H'); console.log(duration.toString()); // "PT48H" console.log(duration.total('minutes')); // 2880 const newDuration = duration.add(Temporal.Duration.from({ days: 1 })); console.log(newDuration.toString()); // "P3DT0H0M0S"
Date
除了 Temporal
类型外,ES12 还更新了 Date
类型。在 ES12 中,Date
类型可以直接从 ISO 格式的字符串创建,避免了日期格式化的麻烦。此外,它还提供了一些方法来获取日期、时间、时区等信息。
示例代码:
const date = new Date('2022-01-01T10:00:00.000Z'); console.log(date.toString()); // "Sat Jan 01 2022 18:00:00 GMT+0800 (中国标准时间)" console.log(date.toISOString()); // "2022-01-01T10:00:00.000Z" console.log(date.getFullYear()); // 2022 console.log(date.getMonth()); // 0 (0 表示一月) console.log(date.getDate()); // 1 console.log(date.getTimezoneOffset()); // -480
总结
ES12 中的时间日期类型包括 Temporal.Instant
、Temporal.ZonedDateTime
、Temporal.Duration
和更新的 Date
类型。Temporal
类型提供了更加完整和方便的处理日期、时间和时区的能力,而更新的 Date
类型则提供了更加简便的 ISO 格式支持。开发者可以根据实际需求选择不同的类型进行使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645b6b5f968c7c53b0dc1518