我想使用moment.js将输入时刻转移到不同的时区并获取其时间戳.
moment.tz(moment(), "Pacific/Auckland").valueOf();
问题是,当我这样做时,moment.tz()对象看起来很好,但是valueOf()方法以某种方式计算回到我的计算机上设置的时区.
我的做法有什么问题?
非常感谢.
编辑1
moment.tz(moment(),“Pacific / Auckland”).format();
给了我正确的时间字符串
moment.tz(moment(),“Pacific / Auckland”).valueOf(“x”);
给我几毫秒,但在我当地的时间再次,而不是在“太平洋/奥克兰”时间
所以毫秒计算毫秒将其转换回当地时间,但为什么呢?并且有什么正确的方法可以在预期的时区内获得毫秒数?
解决方法:
我认为可能只是概念上缺乏对时间戳实际上是什么的理解.
比方说我现在的时间是:
2016年4月25日上午10:21(UTC-7)
这一刻的时间戳是多少?
1461604867
什么是UTC时间?
04/25/2016 @ 5:21 pm(UTC)
这一刻的时间戳是多少?
1461604867
什么,同样,为什么?
一个时刻是相同的时间戳,无论它在哪个时区.当你调用moment()时,它指的是现在正确的,这个特定的时刻在宏观的时空连续体中.与Date.now()相同.实际上,你读到这一刻的那一刻,仍然是你,我在哪里,在日本,在南极洲,在叙利亚,在格陵兰岛等地的完全相同的时刻.恰巧这一刻在视觉上得到了表现(时间字符串)人类在每个区域以不同的方式.
时刻时区不会影响它存储的实际Date对象.它只影响日期的直观表示.视觉表示随时区变化.这就是为什么你不会得到不同的时间戳.