2012-09-18 99 views
0

我試圖從一個月跳到一個月,從一個特定的時間戳開始,但是當我從8月跳到9月時總是跳過。起價(1346389200)8月31日1個月跳:strtotime跳月當給出開始日期

strtotime('+1 month', 1346389200); 

產量1349067600 - 這是10月1日。 如果沒有開始日期來計算,我已經閱讀了所有關於strtotime出錯的信息,但是這個問題會是怎樣的呢? 謝謝

+0

你想做什麼?獲得幾個月的第一天的日期?是31.Avg + 1月= 1.Oct有效? –

+0

@glavić不,他指出31月8日+ 1月= 1月10日 –

回答

1

您可能不應該使用時間戳和strtotime進行此比較。由於諸如夏令時,閏年等原因,您將引入問題。最好使用DateTime和DateInterval類/函數以更徹底的方式執行此操作。八月

月31日之後

http://php.net/manual/en/datetime.add.php

+0

+1提出DateTime和DateInterval類。 –

2

一個是9月31日,但是,因爲它不存在,PHP力的結果爲1十月。 所以,你應該強制在第1天(當然,如果你想只有年和月)當月:

strtotime('+1 month',strtotime(date("Y-m-1",1346389200))); 

,但如果您使用PHP> 5.3,你可以使用更可靠DateTime類和方法。

+0

+1同意,這是預期的結果。 – Tchoupi

相關問題