javascript如何知道日期的时区(以毫秒为单位)?

时间:2010-12-07 17:57:29

标签: javascript datetime utc

使用w3schools的交互式js环境(here)执行以下代码:

var d1=new Date(1306796400000);
document.write("Original form: " + d1);

显示以下消息:

Original form: Tue May 31 2011 00:00:00 GMT+0100 (GMT Daylight Time)

但是这个:

var d1=new Date(1231977600000);
document.write("Original form: " + d1);

显示以下消息:

Original form: Thu Jan 15 2009 00:00:00 GMT+0000 (GMT Standard Time)

我认为毫秒值是自UTC时间01/01/1970以来的毫秒数。 但看起来它包含时区标志。

有谁可以说毫秒值格式是什么?

提前致谢。

4 个答案:

答案 0 :(得分:4)

没有特别的旗帜。这只是Daylight Savings

答案 1 :(得分:1)

Javascript在用户的浏览器中执行,而浏览器又从用户的操作系统中读取当前时区。这就是它如何“猜测”正确的时区。

答案 2 :(得分:0)

毫秒不包含任何此类标志。但是,使用new Date(n)创建的日期对象的时区取决于解释器/浏览器中的区域设置。对我来说:

var d = new Date(1231977600000);

d.toString();
// "Wed Jan 14 2009 17:00:00 GMT-0700 (Mountain Standard Time)"

d.toUTCString();
// "Thu, 15 Jan 2009 00:00:00 GMT"

答案 3 :(得分:0)

没有。它使用本地时区信息,包括DST过渡日期。因此

的区别
javascript:alert([new Date(1306796400000),new Date(1231977600000)].join('\n'))

将您的语言区域设置为DST-less timezone,差异将消失。