2010-12-07 107 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在用戶瀏覽器內部執行,而瀏覽器則從用戶的操作系統讀取當前時區。這就是它如何「猜測」適當的時區。

相關問題