2010-12-07 73 views
0

下面的代码时使用W3Schools的交互式JS环境(here)执行:javascript如何知道以毫秒为单位的日期时区?

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) 

我以为毫秒值自1970年1月1日以来就是毫秒, 但它看起来像包含时区的标志。

任何人都可以说毫秒值格式是什么?

在此先感谢。

回答

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" 
0

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

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

将您的语言环境设置为不含DST的时区,差异将消失。

0

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

相关问题