2016-07-27 35 views
0

我在节点6.3.0上使用moment-timezone 0.5.1
我主要处理的是香港时区,它一直在使用GMT+0800since 1904
在此之前,它是使用GMT+0736since 1885为什么在同一时区内,时区会显示不正确的GMT偏移时间戳?

然而,出于某种原因,moment-timezone格式化划时代附近的一些日期显示GMT+0900,这似乎并没有在历史上的任何基础。

我似乎无法找到该模式,也不能在更近的时间戳中重现此问题。

时代后

moment.tz(123456780, 'Asia/Hong_Kong').toString() // 'Fri Jan 02 1970 18:17:36 GMT+0800' 
moment.tz(1234567800, 'Asia/Hong_Kong').toString() // 'Thu Jan 15 1970 14:56:07 GMT+0800' 
moment.tz(5999999999, 'Asia/Hong_Kong').toString() // 'Wed Mar 11 1970 18:39:59 GMT+0800' 
moment.tz(9000000000, 'Asia/Hong_Kong').toString() // 'Wed Apr 15 1970 12:00:00 GMT+0800' 
moment.tz(9300000000, 'Asia/Hong_Kong').toString() // 'Sat Apr 18 1970 23:20:00 GMT+0800' 
moment.tz(12345678000, 'Asia/Hong_Kong').toString() // 'Sun May 24 1970 06:21:18 GMT+0900' 
moment.tz(9999999999, 'Asia/Hong_Kong').toString() // 'Mon Apr 27 1970 02:46:39 GMT+0900' 
moment.tz(9900000000, 'Asia/Hong_Kong').toString() // 'Sat Apr 25 1970 23:00:00 GMT+0900' 
moment.tz(9500000000, 'Asia/Hong_Kong').toString() // 'Tue Apr 21 1970 07:53:20 GMT+0900' 
moment.tz(9400000000, 'Asia/Hong_Kong').toString() // 'Mon Apr 20 1970 04:06:40 GMT+0900' 
moment.tz(9400000000, 'Asia/Hong_Kong').toString() // 'Mon Apr 20 1970 04:06:40 GMT+0900' 

之前划时代

moment.tz(-9000000000000, 'Asia/Hong_Kong').toString() // 'Thu Oct 19 1684 15:36:42 GMT+0736' 
moment.tz(-90000000000000, 'Asia/Hong_Kong').toString() // 'Sun Jan 06 -0882 15:36:42 GMT+0736' 
moment.tz(-500000000000, 'Asia/Hong_Kong').toString() // 'Sat Feb 27 1954 07:06:40 GMT+0800' 
moment.tz(-100000000000, 'Asia/Hong_Kong').toString() // 'Mon Oct 31 1966 22:13:20 GMT+0800' 
moment.tz(-900000000000, 'Asia/Hong_Kong').toString() // 'Wed Jun 25 1941 17:00:00 GMT+0900' 
moment.tz(-200000000000, 'Asia/Hong_Kong').toString() // 'Sat Aug 31 1963 13:26:40 GMT+0900' 
moment.tz(-800000000000, 'Asia/Hong_Kong').toString() // 'Sat Aug 26 1944 02:46:40 GMT+0900' 
moment.tz(-900000000000, 'Asia/Hong_Kong').toString() // 'Wed Jun 25 1941 17:00:00 GMT+0900' 

回答

2

看起来这也是一个历史的答案,根据香港采用夏令时:

香港采用日光但在二十世纪七十年代,由于香港处于相对较低的纬度,政府认为这些措施是不必要的。这种做法被淘汰在1979年

以快速浏览一下1941年和1942年之间的区别,这似乎是在那里你看到+ 9 GMT + 8和GMT之间的切换:

moment.tz(new Date('1/1/1941'), 'Asia/Hong_Kong').toString() 
// 'Wed Jan 01 1941 16:00:00 GMT+0800' 

moment.tz(new Date('1/1/1942'), 'Asia/Hong_Kong').toString() 
// 'Thu Jan 01 1942 17:00:00 GMT+0900' 
相关问题