哦,Javascript……🙄

2025-06-07

哦,Javascript……🙄

刚刚偶然发现了这颗小宝石。

new Date('2018-01-01')
<- Sun Dec 31 2017 18:00:00 GMT-0600 (Central Standard Time)

new Date('2018/01/01')
<- Mon Jan 01 2018 00:00:00 GMT-0600 (Central Standard Time) 
Enter fullscreen mode Exit fullscreen mode

我认为发生这种情况的原因是 JS 将第一个日期解析为 ISO 8601 格式。由于未指定时区偏移量,因此它假定为 UTC。但是,JavaScript 只会以本地时间创建日期。因此,应用本地时区后,日期是前一天下午 6 点。

第二个使用了/分隔符,所以它不会触发 ISO 解析分支。相反,它合理地假设我感兴趣的是当前时区的日期。

文章来源:https://dev.to/kspeakman/oh-javascript--3404
PREV
Docker 101!
NEXT
我患有注意力缺陷多动障碍🌧️ 我的经历 我怎么不知道?现在怎么办?