使用moment.js获取时区列表。

7
我需要创建一个具有以下值的选择器,
Eastern Standard Time (EST, GMT-5:00)
Central Standard Time (CST, GMT-6:00)
Mountain Standard Time (MST,GMT-7:00)
Phoenix Standard Time (PNT, GMT-7:00)
Pacific Standard Time (PST, GMT-8:00)

有没有通过 moment.js 完成这个任务的方法呢?

1
你有阅读文档吗?http://momentjs.com/timezone/docs/#/data-loading/getting-zone-names/ - Felix Kling
"Phoenix Standard Time"和"PNT"都是无效的。此外,您应该确保理解“时区!=偏移量”,如时区标签wiki所述。 - Matt Johnson-Pint
1
让我问一下,你需要 moment 来为你生成这个列表的原因是什么? 如果你有一个固定的5个时区列表,并且知道这些字符串是什么,还希望 moment 提供什么? 为什么不只是在普通HTML中编写列表呢? - Matt Johnson-Pint
1个回答

12

moment.js 通过 moment-timezone 支持时区,因此如果您加载了完整的时区集,您可以通过迭代 moment.tz.names() 并调用format("z, Z") 来获取所需的字符串。

> moment.tz("America/Los_Angeles").format("z, Z")
"PDT, -07:00"
> moment.tz("2016-01-01", "America/Los_Angeles").format("z, Z")
"PST, -08:00"

这是可以的,但要理解缩写和偏移量将根据时间变化。这可能不是用户在时区选择器中期望的。 - Matt Johnson-Pint
2
是的,这就是为什么我包含了第二个例子的原因,因为第一个假定了当前时间。楼主,请确保您知道您希望下拉菜单显示当前时区偏移量还是显示某个特定日期时间的偏移量。 - user2926055
谢谢,我在哪里可以找到关于格式化方法的文档? - Petran
2
Petran,我的回答包含了一个链接。:-) 只需点击即可。 - user2926055

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接