时区之间的日期转换不同

时间:2014-08-21 15:21:19

标签: javascript

我正在尝试转换日期,但它在时区之间的设定日期显​​示不同。

new Date(1404100800000)
Mon Jun 30 2014 00:00:00 GMT-0400 (Eastern Daylight Time)

new Date(1404100800000)
Sun Jun 29 2014 21:00:00 GMT-0700 (Pacific Daylight Time)

为什么这样做?我一定不了解日期。

1 个答案:

答案 0 :(得分:1)

这是预期的。时间戳编号是与时区无关的测量时间。转换为人类可读格式时,它将根据系统的时区进行更改。这正是您所期望的,因此在纽约下午6点发生的事件也不会是下午6点在San Fransisco发生的事件......但它们将具有相同的时间戳。

来自ECMA标准:

  

自1970年1月1日起,时间以ECMAScript为单位,以毫秒为单位   世界标准时间。在时间值中,忽略闰秒。假设那里   每天正好是86,400,000毫秒。

http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.1

转换为字符串取决于语言环境:

  

此函数返回String值。 String的内容是   依赖于实现,但旨在表示日期   当前时区采用方便,易读的形式。

http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5.2