【发布时间】:2015-04-14 03:36:43
【问题描述】:
简而言之,我想尊重服务器的时区。我已将机器的时区设置为阿拉斯加,但我将布里斯班时区字符串传递给时刻。现在我需要moment.toDate 返回一个与我在时刻构造函数中传递的时区相同的日期实例;例如
m = moment("2016-11-20T08:00:00+10:00")
m.format() // "2016-11-20T08:00:00+10:00"
m.toDate() // Sat Nov 19 2016 13:00:00 GMT-0900 (AKST)
我想从输入时区的那一刻起获得Date 实例;例如以某种方式让toDate 返回Sun Nov 20 2016 08:00:00 GMT+1000 (AEST)。
FWIW 我尝试了使用和不使用moment.tz.setDefault 的相同代码,虽然它正确更改了format 结果,但toDate 始终使用机器的时区!
更新
我需要这种行为的原因是一些 JavaScript 库和控件不理解 moment 并且只能使用 Date 并且当它们返回时时间/日期会出现偏差。我目前正在处理的一个示例是 jQuery UI 日期选择器控件。我希望日期选择器显示服务器上(或特定时区)上的当前日期。
提前致谢。
【问题讨论】:
标签: javascript timezone momentjs