2013-02-03 27 views
5

我已經從我的服務器給我UTC的Unix時間戳以秒爲JSON響應。我將它解析爲將在圖表中使用的JavaScript日期(在用戶的區域設置中顯示時間)。Date.getTimezoneOffset倒轉?

我明明已經哄時間戳我(在UTC)到瀏覽器的語言環境,所以我寫了創建在瀏覽器的語言環境的新Date功能,來電getTimezoneOffset()它來獲得「在幾分鐘內抵消」根據the MDN,當前語言環境將兩者都轉換爲毫秒,並返回總和。現在我在用戶的語言環境中有一個JavaScript友好的Unix時間戳。

但是,我不知道。

事實證明,(new Date()).getTimezoneOffset()回報(正)300在GMT-5和-120中GMT + 2。爲什麼偏移是倒置的?我希望偏移量能夠匹配時區的符號 - 例如:我需要減去300分鐘才能到達GMT-5,並且需要120分鐘才能到達GMT + 2。相反,我必須減去由getTimezoneOffset

+0

參見描述在[此處](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset).'This意味着偏移是正的,如果當地時區爲UTC落後和消極的,如果它是ahead.' – Jashwant

+0

所以如果我想通過實際點擊的方法...... *捂臉* –

回答

5

都能跟得上返回的值。

spec (§15.9.5.26)說:

15.9.5.26 Date.prototype.getTimezoneOffset()

返回本地時間和UTC分鐘時間之間的差異。

  1. 是這個時間值。
  2. 如果是NaN,NaN的回報。
  3. 返回( - 本地時間(T))/ msPerMinute
+0

所以,基本上是一個RTFM問題。也許我的咖啡因太少了。那麼,至少它是記錄在案的:D。謝謝 –