2015-09-02 25 views
2

我指的是http://momentjs.com/timezone/docs/#/using-timezones/如何IST時區對象添加到Moment.js

在例子中,其給出如下位置:

moment.tz.add([ 
    'America/Los_Angeles|PST PDT|80 70|0101|1Lzm0 1zb0 Op0', 
    'America/New_York|EST EDT|50 40|0101|1Lz50 1zb0 Op0' 
]); 

我不知道IST值作爲其給出:

{ 
    name : 'America/Los_Angeles',   // the unique identifier 
    abbrs : ['PDT', 'PST'],     // the abbreviations 
    untils : [1414918800000, 1425808800000], // the timestamps in milliseconds 
    offsets : [420, 480]      // the offsets in minutes 
} 

有人可以幫助添加IST對象嗎?

回答

11

的最簡單的方法是隻使用包括從moment-timezone home page時區數據的文件,如moment-timezone-2010-2020.jsmoment-timezone-all-years.js(或縮小的版本)中的一個。

如果您願意,您可以只添加一個區域。您可以在上面列出的數據文件中找到該區域的打包字符串。對於印度來說,完整區域的定義是:

moment.tz.add("Asia/Calcutta|HMT BURT IST IST|-5R.k -6u -5u -6u||-18LFR.k 1unn.k HB0 7zX0"); 
moment.tz.link("Asia/Calcutta|Asia/Kolkata"); 

您可能會也可能不需要鏈接,具體取決於您在做什麼。

請注意,我認爲「IST」是指印度標準時間,而不是Irish Standard Time or Israel Standard Time。當然,這些區域會有不同的數據。

此外,由於印度自1942年以來一直使用UTC + 5:30,您可能只希望使用固定偏移量 - 這將消除使用瞬時時區的需要。立即使用utcOffset函數。例如,以下兩種情況都會返回印度的當前時間。

moment().utcOffset("+05:30").format() 

moment().utcOffset(330).format() 
+0

太謝謝你了! –

+0

馬特,你還可以看看http://stackoverflow.com/questions/32267362/disabling-the-timezone-conversion-in-extjs/?上面的問題只是爲了解決這個問題,我認爲必須有一些更好的方法來做到這一點。謝謝! –

+1

我不太瞭解ExtJS來回答這個問題,但我也不知道它與此有何關係。如果您有一個以UTC爲基礎的時間戳,只需使用'moment.utc(timestamp)'將其加載即可,並根據需要進行格式化。無需處理時區轉換。 –