Levix 空间站
920 subscribers
219 photos
11 videos
20 files
1.38K links
主要分享前端、AI 以及前沿科技资讯。

🚫 禁止人身攻击:请在评论区保持尊重和友好,避免不当言论和负面互动。

🚫 禁止违规内容:请勿发布任何黄赌毒、宗教极端、政治敏感或其他违反社区规定的内容。
主要分享前端以及业界科技资讯。

🚫 禁止广告与刷屏:为了维护良好的交流环境,请不要进行任何形式的广告推广、黑产活动、刷屏行为及发布不适内容。

🔒 保护个人信息:请注意个人隐私和网络安全,不要在评论区泄露个人信息或点击不明链接。
Download Telegram
JavaScript 日期处理即将迎来重大改进,其中最引人注目的是 Temporal 提案。该提案通过 FullCalendar 团队提供的 polyfill 已经可以提前使用。Temporal API 的一大优势是引入了原生的 "带时区的日期时间(Zoned Date Time)" 对象。

在人类交流中,日期通常不包含时区信息,例如 "2024年8月4日上午10:30"。但计算机处理 JavaScript 的 Date 对象时,实际上是处理纯数字,这导致日期的原始语义丢失。JavaScript 中的日期实际上是 POSIX 时间(忽略闰秒),而非 UTC 时间。

Temporal API 引入了 Temporal.ZonedDateTime 对象,专门用于表示带有对应时区的日期和时间。例如,一个时间戳可以对应多个人类可读的日期,这取决于时区。例如,同一个时间戳在澳大利亚、马德里和美国可能对应不同的当地时间。

Temporal API 的优势

1. 创建日期:Temporal API 在创建日期时可以轻松处理时区,包括夏令时(DST)的棘手情况。

2. 日期比较:ZonedDateTime 提供了静态方法 compare,可以比较两个日期。

3. 内置属性:如 hoursInDay 属性,可以返回特定时区中一天的实际小时数。

4. 时区转换:通过 .withTimeZone 方法轻松改变 ZonedDateTime 的时区。

5. 日期运算:支持日历算术或简单持续时间的加减,自动调整夏令时。

#JavaScript #ECMAScript #新特性 #Date

https://docs.timetime.in/blog/js-dates-finally-fixed/