如何将IST时区对象添加到Moment.js

Sne*_*sne 4 javascript timezone date momentjs

我指的是http://momentjs.com/timezone/docs/#/using-timezones/

例如,它给出了以下位置:

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'
]);
Run Code Online (Sandbox Code Playgroud)

我不确定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
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮助添加IST对象吗?

Mat*_*int 23

最简单的方法是使用其中一个文件,其中包括来自时刻时区主页的时区数据,例如moment-timezone-2010-2020.jsmoment-timezone-all-years.js(或缩小版本).

但是,如果您愿意,可以只添加一个区域.您可以在上面列出的数据文件中找到区域的打包字符串.对于印度,完整区域定义是:

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

您可能需要也可能不需要链接,具体取决于您正在做什么.

请注意,我认为"IST"表示印度标准时间,而不是爱尔兰标准时间或以色列标准时间.当然,这些区域会有不同的数据.

此外,由于印度自1942年以来一直使用UTC + 5:30,您可能只希望使用固定偏移 - 这将消除使用时刻时区的需要.只需utcOffset在瞬间使用该功能.例如,以下两个将返回印度的当前时间.

moment().utcOffset("+05:30").format()
Run Code Online (Sandbox Code Playgroud)

要么

moment().utcOffset(330).format()
Run Code Online (Sandbox Code Playgroud)

  • 我对 ExtJS 的了解不够,无法回答那个问题,但我也不明白它与此有何关系。如果您有一个基于 UTC 的时间戳,只需使用 `moment.utc(timestamp)` 将其加载到 moment 中并根据需要对其进行格式化。无需处理时区转换。 (2认同)