日期和时间的操作在前端开发中非常常见,因此在 ECMAScript 2021 中,JavaScript 提供了一些新的 API 来方便我们进行日期和时间的操作。本文将介绍这些新的 API,并提供一些示例代码,以帮助读者更好地理解和使用它们。
Date 和 Time 类型
在 ECMAScript 2021 中,有两种新的日期和时间类型:Temporal.Date
和 Temporal.Time
。Temporal.Date
表示一个日期,而 Temporal.Time
表示一个时间。它们都是不可变的,因此不能被修改。
Temporal.Date
Temporal.Date
对象表示一个日期,它包含年份、月份和日期。可以使用以下方式创建一个 Temporal.Date
对象:
const date = Temporal.Date.from("2022-01-01");
这里的参数是一个 ISO 格式的日期字符串,它指定了年份、月份和日期。我们还可以使用以下方式创建一个 Temporal.Date
对象:
const date = new Temporal.Date(2022, 1, 1);
这里的参数分别是年份、月份和日期。需要注意的是,月份是从 1 开始计数的,而不是从 0 开始计数的。
Temporal.Date
对象有一些常用的方法,例如获取年份、月份和日期:
console.log(date.getYear()); // 2022 console.log(date.getMonth()); // 1 console.log(date.getDay()); // 1
Temporal.Time
Temporal.Time
对象表示一个时间,它包含小时、分钟、秒和毫秒。可以使用以下方式创建一个 Temporal.Time
对象:
const time = Temporal.Time.from("12:34:56.789");
这里的参数是一个 ISO 格式的时间字符串,它指定了小时、分钟、秒和毫秒。我们还可以使用以下方式创建一个 Temporal.Time
对象:
const time = new Temporal.Time(12, 34, 56, 789);
这里的参数分别是小时、分钟、秒和毫秒。
Temporal.Time
对象有一些常用的方法,例如获取小时、分钟、秒和毫秒:
console.log(time.getHour()); // 12 console.log(time.getMinute()); // 34 console.log(time.getSecond()); // 56 console.log(time.getMillisecond()); // 789
Temporal API
除了 Temporal.Date
和 Temporal.Time
类型之外,JavaScript 还提供了一些新的 API 来方便我们进行日期和时间的操作。以下是一些常用的 Temporal API:
Temporal.now
Temporal.now
方法返回当前的日期和时间。它返回一个 Temporal.Timestamp
对象,其中包含当前的日期和时间。
const timestamp = Temporal.now.timestamp(); console.log(timestamp.toString()); // 2022-08-31T12:34:56.789Z
Temporal.PlainDate
Temporal.PlainDate
类表示一个没有时区信息的日期。它与 Temporal.Date
类似,但不包含任何时区信息。
const plainDate = Temporal.PlainDate.from("2022-01-01"); console.log(plainDate.getYear()); // 2022 console.log(plainDate.getMonth()); // 1 console.log(plainDate.getDay()); // 1
Temporal.PlainTime
Temporal.PlainTime
类表示一个没有时区信息的时间。它与 Temporal.Time
类似,但不包含任何时区信息。
const plainTime = Temporal.PlainTime.from("12:34:56.789"); console.log(plainTime.getHour()); // 12 console.log(plainTime.getMinute()); // 34 console.log(plainTime.getSecond()); // 56 console.log(plainTime.getMillisecond()); // 789
Temporal.PlainDateTime
Temporal.PlainDateTime
类表示一个没有时区信息的日期和时间。它包含年份、月份、日期、小时、分钟、秒和毫秒。
const plainDateTime = Temporal.PlainDateTime.from("2022-01-01T12:34:56.789"); console.log(plainDateTime.getYear()); // 2022 console.log(plainDateTime.getMonth()); // 1 console.log(plainDateTime.getDay()); // 1 console.log(plainDateTime.getHour()); // 12 console.log(plainDateTime.getMinute()); // 34 console.log(plainDateTime.getSecond()); // 56 console.log(plainDateTime.getMillisecond()); // 789
Temporal.Duration
Temporal.Duration
类表示一个时间段,例如 1 天、2 小时、3 分钟和 4 秒。
const duration = Temporal.Duration.from({ days: 1, hours: 2, minutes: 3, seconds: 4 }); console.log(duration.toString()); // P1DT2H3M4S
Temporal.Instant
Temporal.Instant
类表示一个时间戳,它是一个距离 UTC 1970 年 1 月 1 日 0 点的毫秒数。
const instant = Temporal.Instant.fromEpochMilliseconds(1630427696789); console.log(instant.toString()); // 2021-08-31T12:34:56.789Z
示例代码
下面是一些示例代码,演示了如何使用 Temporal API 进行日期和时间的操作:
-- -------------------- ---- ------- -- ---------- ----- --------- - ------------------------- ---------------------------------- -- -------- ----- ---- - --------------------------------- ---------------------------- ----------------------------- --------------------------- -- -------- ----- ---- - ----------------------------------- ---------------------------- ------------------------------ ------------------------------ ----------------------------------- -- --------------- ----- --------- - -------------------------------------- --------------------------------- ---------------------------------- -------------------------------- -- --------------- ----- --------- - ---------------------------------------- --------------------------------- ----------------------------------- ----------------------------------- ---------------------------------------- -- ------------------ ----- ------------- - ------------------------------------------------------- ------------------------------------- -------------------------------------- ------------------------------------ ------------------------------------- --------------------------------------- --------------------------------------- -------------------------------------------- -- --------- ----- -------- - ------------------------ ----- -- ------ -- -------- -- -------- - --- --------------------------------- -- --------- ----- ------- - ------------------------------------------------------ --------------------------------
结论
在 ECMAScript 2021 中,JavaScript 提供了一些新的 API 来方便我们进行日期和时间的操作。这些 API 包括 Temporal.Date
、Temporal.Time
、Temporal.PlainDate
、Temporal.PlainTime
、Temporal.PlainDateTime
、Temporal.Duration
和 Temporal.Instant
。使用这些 API,我们可以更方便地进行日期和时间的操作,从而提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67567569d8a608cf5d8c316c