2014-06-30 59 views
0

如何在客戶端的javascript中獲取GMT偏移量?在javascript中獲取客戶端的GMT偏移量

new Date().getTimezoneOffset();返回與UTC的差值。有沒有一種方法可以從中計算GMT偏移量?

GMT偏移量,我的意思是在-5東部標準時間。

+1

除非將UTC轉換爲GMT,否則您無法進行此操作。 –

+0

@ DanielA.White我該怎麼做?在JavaScript? – wordSmith

+1

是 - 那裏的圖書館。 –

回答

4

new Date()。getTimezoneOffset();從UTC返回差異。有沒有一種方法可以從中計算GMT偏移量?

時區偏移從GMT在分鐘(見ECMA-262 §15.9.5.26)之差。符號是ISO 8601的反轉,但它很容易轉化爲小時和分鐘用更標準的標誌:

function getTimezoneOffset() { 
    function z(n){return (n<10? '0' : '') + n} 
    var offset = new Date().getTimezoneOffset(); 
    var sign = offset < 0? '+' : '-'; 
    offset = Math.abs(offset); 
    return sign + z(offset/60 | 0) + z(offset%60); 
} 

getTimezoneOffset() // +0800 for UTC/GMT + 8hrs 

如果你想確定IANA時區名稱,你可以嘗試pellepim jstimezonedetect,但它的工作原理是猜測基於兩個日期的偏移量,可能不正確。

+0

非常感謝! – wordSmith