Javascript 使用moment.js设置初始时区

Javascript 使用moment.js设置初始时区,javascript,momentjs,Javascript,Momentjs,我尝试按照矩.js初始化指定东部8时区 我将操作系统时区更改为西部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) 但我不明白为什么我也从不同的

我尝试按照矩.js初始化指定
东部8
时区

我将操作系统时区更改为西部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) 
但我不明白为什么我也从不同的初始时区得到相同的输出


我做错了什么:(

更新:

首先,不要使用
.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
此外,请查看以下摘录:

如果你想要一个真实的时区——某个特定位置的时间,比如 美国/洛杉矶,考虑。


更新:

首先,不要使用
.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
此外,请查看以下摘录:

如果你想要一个真实的时区——某个特定位置的时间,比如 美国/洛杉矶,考虑。


感谢您的建议,我尝试了
时刻时区
,但也得到了相同的输出。在我看来,它可以帮助我在初始设置时将时间戳转换为正确的时区,但现在我不知道如何修复:(感谢您的回复,我计划现在使用
时刻时区
)感谢您的建议,我尝试了
时刻时区
,但也得到了相同的输出。在我看来,它可以帮助我在初始设置时将时间戳转换为正确的时区,但现在我不知道如何修复:(感谢您的回复,我计划现在使用
时刻时区
)设置
utcOffset
只会更改
moment
对象的行为。它不会更改您所谈论的时间的瞬间,因此不会更改您从
toDate
获得的结果,因为
Date
对象仅与本地时间一起工作。设置
utcOffset
只会更改
m的行为oment
对象。它不会改变您所谈论的时间的瞬间,因此不会导致您从
toDate
中获得结果,因为
日期
对象仅适用于本地时间。