2016-07-27 17 views
0

Ich verwende moment-timezone 0.5.1 auf Knoten 6.3.0
Ich bin in erster Linie mit der Hong Kong Zeitzone, die GMT+0800since 1904 verwendet hat.
Davor war mit ihm GMT+0736since 1885Warum zeigt die Zeitzone für einige Zeitstempel in derselben Zeitzone einen falschen GMT-Offset?

Doch aus irgendeinem Grunde moment-timezone formatiert einige Termine in der Nähe der Epoche GMT+0900 angezeigt werden, die in der Geschichte eine Grundlage zu haben scheinen nicht.

Ich kann das Muster nicht finden, noch kann ich dieses Problem in neueren Zeitstempeln reproduzieren.

Nach Epoche

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' 

Vor Epoche

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' 

Antwort

2

Es scheint, wie es ist auch eine historische Antwort, basierend auf Hongkongs Annahme der Sommerzeit:

Hong Kong adoptierte Tageslicht s Die Regierung hielt diese Maßnahmen in den siebziger Jahren für unnötig, da sich Hongkong auf einem relativ niedrigen Stand befindet. Die Praxis wurde 1979 beseitigt

Einen kurzen Blick auf den Unterschied zwischen 1941 und 1942, die wie scheint, wo Sie den Schalter zwischen GMT sehen + 8 und GMT + 9:

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'