【问题标题】:How to add IST timezone object to Moment.js如何将 IST 时区对象添加到 Moment.js
【发布时间】:2015-11-28 02:07:03
【问题描述】:

我指的是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'
]);

我不确定 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 对象吗?

【问题讨论】:

    标签: javascript date timezone momentjs


    【解决方案1】:

    最简单的方法是只使用包含来自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|01232|-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()
    

    【讨论】:

    • 马特,你能看看stackoverflow.com/questions/32267362/…吗?上面的问题只是为了解决这个问题,我认为必须有一些更好的方法来做到这一点。谢谢!
    • 我对 ExtJS 的了解不够,无法回答这个问题,但我也看不出它与此有何关系。如果您有一个基于 UTC 的时间戳,只需使用 moment.utc(timestamp) 将其加载到时刻并根据需要对其进行格式化。无需处理时区转换。
    • @MattJohnson-Pint 你如何从 +05:30 得到 330 的值?
    • @Rijo - (5 * 60) + 30(5 小时,一小时乘以 60 分钟,再加上 30 分钟)
    猜你喜欢
    • 2015-03-13
    • 2014-05-26
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2014-09-14
    • 2023-01-19
    相关资源
    最近更新 更多