2010-11-12 87 views
22

我需要聲明"Ymd"格式的兩個日期:$toDate$fromDate如何從今天的日期減去4個月?

$toDate代表今天的日期,$fromDate需要比今天提前4個月。

$toDate = Date('Ymd'); 
$fromDate = ? 

如何創建$fromDate

回答

57

使用strtotime魔力:

$fromDate = date("Ymd", strtotime("-4 months")); 
+0

在十二月三十一日,我試圖相同的代碼,並試圖如上所述減去1個月,它返回了我2012年12月1日的日期,但我期待着11月30日。它是預期的結果還是它的一個錯誤? – 2012-12-31 05:45:14

+0

@Mubashar我想這是設計!兩種方法(你的和strtotime的)可以說同樣有效。 – 2012-12-31 11:48:05

+0

是的,這是真的 – 2013-01-02 05:22:15

8

看到下面的代碼......今天

$fourmonthsback = date("Ymd", mktime(0, 0, 0, date("m")-4, date("d"), date("Y"))); 

OR

$fourmonthsback = mktime(0, 0, 0, date("m")-4, date("d"), date("Y")); 
+2

這將不會在一月,二月,三月或四月,因爲月份將是0或負數。 – cypher 2010-11-12 10:02:20

+8

@cypher - 其實mktime做日期算術。如果將月份參數設置爲小於1 mktime,則會選擇較早的月份。如果將月份設置爲0,那麼mktime會將整個日期修改爲上一年的12月份。除了時區之外,該算法適用於mktime的所有參數。 – emurano 2010-11-12 10:11:01

+0

真的嗎?對不起,那我不知道。 – cypher 2010-11-12 11:30:25

相關問題