我在使用PHP的timezone_transitions_get()
時發現了一些奇怪的事情。返回的數組的第一個元素似乎是這樣的不大可能/ unuseable值,而不管時區的使用:從PHP的timezone_transitions_get()返回這個奇怪的值是什麼?
php -r 'print_r(timezone_transitions_get(new DateTimeZone("GMT")));'
Array
(
[0] => Array
(
[ts] => -9223372036854775808
[time] => -292277022657-01-27T08:29:52+0000
[offset] => 0
[isdst] =>
[abbr] => UTC
)
)
php -r 'print_r(timezone_transitions_get(new DateTimeZone("US/Pacific")));'
Array
(
[0] => Array
(
[ts] => -9223372036854775808
[time] => -292277022657-01-27T08:29:52+0000
[offset] => -25200
[isdst] => 1
[abbr] => PDT
)
...
我用PHP 5.3和5.4嘗試這樣做。它似乎與使用的PECL timezonedb版本無關。任何人都知道這是爲什麼發生?
感謝您的回答。顯然這自PHP 5.2以來已經發生了變化,因爲我正在更新一些代碼,並沒有期待這個額外的默認轉換。另外值得注意的是,strtotime()無法處理該[時間]值。 –
在32位和64位系統上可能會有所不同。也許在32位系統上仍然是以毫秒爲單位。不太確定PHP是否有這種怪癖。 –
在這種情況下(64位)相同的系統,我所做的只是更新PHP。 –