javascript - 后续调用新的 Date 返回具有不同时区的对象

标签 javascript date timezone

我面临着一种奇怪的情况,其中对传递时间戳的 Date 构造函数的后续调用将返回具有不同时区的日期对象。

different timezones subsequent calls same browser

当我使用该对象获取该月的某一天时,这会导致问题。

new Date(1509228000000).getDate()
29
new Date(1509314400000).getDate()
29

如果使用相同的时区,结果将是 29 和 30。

我的理解是javascript应该使用系统或浏览器时区。我不明白两个调用(一个接一个)如何返回具有不同时区的对象。

我使用的是 Chrome 版本 61.0.3163.100(官方版本)(64 位)。

澄清

我知道时间戳(毫秒数)可以用不同的时区表示。我不明白的是,使用不同的值调用 Date 构造函数如何导致同一计算机和浏览器中具有不同时区的 Date 对象。

最佳答案

在欧盟国家,中欧夏令时间 (CEST) 今年将于本地时间 2017 年 10 月 29 日凌晨 3:00 转换为中欧时间 (CET)。您的结果只是反射(reflect)了这种变化。该行为是预期的。 Reference here .

需要明确的是,您显示的两个值都是本地时间 10 月 29 日。 getDate() 调用的正确结果确实是 29。

为了进一步理解,我建议您阅读:

关于javascript - 后续调用新的 Date 返回具有不同时区的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648509/

相关文章:

java - 如何从安卓日历中获取日期?

php - Html 表单 - php - mysql 日期字段?

javascript - 嵌套数组求和

javascript - django-ckeditor:在哪里存储 config.js?

javascript - Chaplin/Backbone 问题 - 将项目添加到集合时未触发 "Add"事件

ios - 为什么我的NSDate时区不正确?

javascript - 如何在 Mongo J/S 中将 UTC 时间转换为任意本地时间

javascript - 表单内的按钮未触发 jQuery 单击事件

java - Criteriabuilder 日期比较

python - 从忽略 DST 的时区获取 Python 中的时区偏移量