Javascript 使用moment.js设置初始时区
我尝试按照矩.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) 但我不明白为什么我也从不同的
东部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()
,否则您将收到一个JavaScriptDate
对象,您必须自己转换它
其次,需要对初始化的矩对象调用.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()
,否则您将收到一个JavaScriptDate
对象,您必须自己转换它
其次,需要对初始化的矩对象调用.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
中获得结果,因为日期
对象仅适用于本地时间。