【问题标题】:moment get time in different timezones时刻获取不同时区的时间
【发布时间】:2016-04-30 22:30:36
【问题描述】:

我只有四个不同的时区

<select class="pull-left marg-l-5px" id="hoursTimezone">
 <option>-</option>
 <option>EST</option>
 <option>CST</option>
 <option>PDT</option>
 <option>MDT</option>
</select>

我在我的项目中添加了带有数据的时刻 timzone 文件,文件名为

/moment-timezone-with-data-2010-2020.js

我在 IST 中并输入以下命令

moment().tz('EST');

在 IST 中返回时间,如果我对其他时区 CST、PDT、MDT 尝试相同,我会收到错误

Moment Timezone has no data for ---.

查看下图

这里有什么问题?

有没有办法只在这些时区获得时间?

或者有人请告诉我时刻数据字符串中 EST 和其他时区的字符串是什么

如果我在this 文件中搜索,会有很多字符串,比如

我想要类似“查询 'America/Los_Angeles' 并获得 EST 时间”之类的内容。

提前致谢

【问题讨论】:

    标签: javascript jquery datetime timezone momentjs


    【解决方案1】:

    您不应该依赖时区缩写进行选择或输入。他们太模棱两可了。仅“CST”就有 5 种不同的含义。见the list on Wikipedia

    此外,缩写不一定代表整个时区。考虑到 CST 仅适用于标准时间的北美中部时区,而 CDT 则适用于白天。

    还要认识到,moment-timezone 中使用的时区必须在 IANA 时区数据库中有效。 You can find a list here.

    我相信您正在寻找的是适用于美国的时区。假设您不关心历史日期,则最小集合还需要包括亚利桑那州、夏威夷州和阿拉斯加州。该列表将是:

    <select class="pull-left marg-l-5px" id="hoursTimezone">
     <option>-</option>
     <option value="America/New_York">Eastern</option>
     <option value="America/Chicago">Central</option>
     <option value="America/Denver">Mountain</option>
     <option value="America/Phoenix">Arizona</option>
     <option value="America/Los_Angeles">Pacific</option>
     <option value="America/Anchorage">Alaska</option>
     <option value="Pacific/Honolulu">Hawaii</option>
    </select>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      相关资源
      最近更新 更多