【问题标题】:How to get Timezone by passing abbreviation?如何通过缩写获得时区?
【发布时间】:2019-02-08 05:10:35
【问题描述】:

我正在使用 Momentjs,到目前为止,我正在通过执行以下步骤获取日期和时间

 var TimeZone = moment.tz("Asia/Kolkata").format('LLLL');

但我需要通过例如传递缩写来获取时间和日期

var TimeZone = moment.tz("IST").format('LLLL');

我怎样才能做到这一点?

【问题讨论】:

    标签: javascript angularjs momentjs


    【解决方案1】:

    我不知道 Momentjs,但我可以为你提供 JS 解决方案来做同样的事情。 正如我从你的问题中了解到的那样,“.tz”方法只接受完整的时区名称而不是短格式。所以你可以使用 JS 原型继承来实现这个结果。 你要做的就是用一个字典对象创建另一个你自己的方法,并用你的特性扩展“moment”对象。参考代码:

    var tzMap = {
        "IST" :  "Asia/Kolkata",
        "UST" : "America/LA"   // this I only took for example i don't know it exist 
                                  or not
    }
    moment.__proto__.timezone = function(tzStr){
        if(Object.hasOwnProperty(tzStr)){
             tzStr = tzMap[tzStr];
        } 
        return this.tz(tzStr);
    } 
    
    // now instead of using 
    // moment.tz("Asia/Kolkata").format('LLLL');
    
    // U can use
     var TimeZone = moment.timezone("Asia/Kolkata").format('LLLL');
    // or
    var TimeZone = moment.timezone("IST").format('LLLL');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2013-07-28
      • 2020-07-20
      • 2020-01-22
      相关资源
      最近更新 更多