使用moment.js设置初始时区

时间:2016-09-18 05:33:54

标签: javascript momentjs

我尝试按照 moment.js 指定eastern 8时区。

我将操作系统时区更改为western 4,然后输入相同的时间戳,如下所示。

moment().utcOffset(-240);
moment(1473998400000).toDate();

moment().utcOffset(480);
moment(1473998400000).toDate();

// both output >>> Fri Sep 16 2016 00:00:00 GMT-0400 (EDT) 

但我无法理解为什么我也从不同的初始时区获得相同的输出?

我做错了什么:(

1 个答案:

答案 0 :(得分:2)

<强>更新:

首先,请勿使用.toDate(),否则您将收到一个JavaScript Date对象,您必须自行转换。

其次,您需要在初始化的时刻对象上调用.utcOffset()

moment(1473998400000).utcOffset(-240).format(); // 2016-09-16T00:00:00-04:00
moment(1473998400000).utcOffset(480).format();  // 2016-09-16T12:00:00+08:00

另外,请查看docs

中的以下摘录
  

如果你想要一个实际的时区 - 特定地点的时间,比如   America / Los_Angeles,请考虑moment-timezone