2012-07-24 66 views
4

我有一個字符串的日期格式爲:的Javascript datestring構造改變時區

「2012-07-22T08:00:00Z」

但是,當我嘗試創建一個日期字符串:

new Date("2012-07-22T08:00:00Z"); 

我得到:

日期{Sun Jul 22 2012 01:00:00 GMT-0700}

看起來它會將日期的時區更改爲本地時區。因爲它減少了7小時(GMT-0700)的時間

我怎能Date對象與UTC,並在合適的時間(08:00:00)?

在此先感謝!

+0

你爲什麼擺在首位的字符串?是否有可能獲得時間戳? – Esailija 2012-07-24 14:55:37

+1

日期的UTC函數像'toUTCString()'。使用Chrome JS控制檯撥弄它 – 2012-07-24 14:56:21

回答

3

這只是顯示,因爲日期的toString()方法返回格式化爲當前時區的日期這樣的日期。內部表示仍然是時區中立的。嘗試new Date("2012-07-22T08:00:00Z").toUTCString()

Javascript日期有一堆獲取和設置值使用當前時區或UTC的方法,所以如果您需要使用UTC計算或打印,則可以使用這些方法。

+0

這不適用於IE <9,只是把它放在那裏 – Esailija 2012-07-24 15:00:49

1

關閉我的頭頂:

function dateToUTC(date) { 
    return new Date( 
      date.getUTCFullYear(), 
      date.getUTCMonth(), 
      date.getUTCDate(), 
      date.getUTCHours(), 
      date.getUTCMinutes(), 
      date.getUTCSeconds() 
    ) 
}; 

似乎是相當低效的,但...