0

使用moment-timezone,如果您有一个带有时区的时刻对象,例如moment.tz('America/New_York'),您如何清除时区并将时刻更改为“本地”时间?

值得注意moment.local()的是,不起作用(随后调用 moment.tz()仍然等于America/New_York)。我可以确认我的当地时间不是America/New_York

我找到的唯一解决方案是设置一个无效的时区,例如moment.tz('local'). 这会向控制台记录一个警告,提示您尝试设置无效的时区(烦人),但它确实清除了与时刻对象关联的时区,将其返回到本地时刻对象。moment-timezone吐出的警告强调了这个解决方案可能会在未来打破,这显然是一个黑客攻击。

完成此任务的正确方法是什么?

4

1 回答 1

0

更新

这个问题是由moment-timezone. 从版本0.5.24 开始,应正确清除与对象moment.local()关联的时区。moment-timezone

原来的

眼下!这似乎是一个错误moment-timezone(参见#738#258)。我发现的当前解决方法是首先使用moment.utc()(清除时区并将时刻设置为“UTC”模式),然后使用moment.local(). 即moment.utc().local()

于 2019-03-29T07:00:42.363 回答