我遇到了mktime的一個簡單問題。我發現下面的代碼:PHP mktime有時會返回錯誤的日期
echo date("Y-M-d", mktime(11, 45, 0, 01, 05, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 06, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 07, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 08, 2014)); echo ", ";
echo date("Y-M-d", mktime(11, 45, 0, 01, 09, 2014)); echo ", ";
正在生產輸出如下:
2014-Jan-05, 2014-Jan-06, 2014-Jan-07, 2013-Dec-31, 2013-Dec-31
日期功能只是爲了使其更具可讀性;由mktime返回的時間戳本身是錯誤的。 只有變化的事情是每個月的某一天,所以我不知道爲什麼7天和8天之間會出現不連續性,或者爲什麼8天和9天都會返回。
我已經檢查過,小時,分鐘和秒不會改變錯誤的日子的結果,儘管他們確實改變了確切的時間戳。也就是說,上面的最後兩行返回完全相同的時間戳(1388508300),但如果我更改小時,則時間戳的相對更改與預期相同。
在上下文很重要的情況下,這是在WordPress安裝中的PHP 5.3中運行。
和幾個月。當你到達08和09時,你也會遇到很大的問題。 – Jessica
謝謝;當然,只要我點擊「提問」,我也會發生這種可能性。我不知道PHP中的前導零(常用於格式化日期!)被解釋爲八進制數。爲了完全正確,我必須從「01」(1月)中刪除前導零,否則我會在八月份遇到另一個問題。 – GJP
@GJP'08'雖然不是日期,但它只是一個數字...... :) – deceze