2015-04-04 58 views
0

我想獲取兩個時區(紐約和悉尼)的時間戳,並在jquery時鐘中使用它們以顯示相對於本地時間的時間戳。我使用了moment.js和moment-timezone.js。使用moment.js獲取timezonezon偏移日期對象

這給了我正確的時刻NY:

moment().tz("America/New_York") 

我知道這是格式()返回正確紐約時間爲一個字符串。

2015-04-04T12:52:51-04:00 

我現在想的時間戳正確偏移,所以當我把它放到時鐘

$("#clock").clock({"timestamp":customtimestamp}); 

它顯示紐約時間。但是,如果我天真地使用

moment().tz("America/New_York").valueOf() 

並把它放在時鐘中,它返回我的本地時間。

那麼,如何使用我的時刻對象在時鐘中正確顯示紐約時間?

回答

0

好吧,我對這一個人不太確定。我提出了一個解決方案,我認爲它可以滿足你的需求,但我對它的外觀很不滿意。

以下對於我來說在命令行中似乎沒問題。從我瞭解你使用JQuery的時鐘,你應該能夠在控制檯日誌(基本上是本地的Unix時間加上區偏移,這是負在這種情況下),以使用值顯示:

var moment = require('moment-timezone'), 
    nytz = moment.tz("America/New_York"), 
    asstring = nytz.format(), 
    asunixtime = parseInt(nytz.format('X')), 
    offset = moment.parseZone(asstring).utcOffset(); 

console.log(asunixtime + offset); 

我很害怕做一個有效的答案,但是我很難用正確的API做到這一點。最後一件事:如果您在瀏覽器中運行,請確保您有時區數據(請參閱here)。

希望它有一點幫助。

+0

感謝您的幫助 - 非常感謝。我最終沒有在JS中計算偏移量,我使用了服務器端python。 JS中的時區感知日期對象=全部噩夢。 – professorDante 2015-04-04 21:12:42