2016-04-24 77 views
0

我已經寫了一段代碼,它將日期轉換爲特定的格式並將其增加1天。PHP日期增加

<?php 
date_default_timezone_set('Europe/Moscow'); 
$mehdate = "2011-11-25"; 
$mehdate = date ('d m Y', strtotime ('+1 day', strtotime($mehdate))); 
echo $mehdate, "\n"; 
?> 

但後來我有1天一次提高$ mehdate。 我不明白該怎麼做。我已經嘗試過

$mehdate = date ('d m Y', strtotime ("+1 day", $mehdate)); 

$mehdate = date ('d m Y', strtotime ('+1 day', strtotime($mehdate))); 

再次但是它不會起作用,因爲

strtotime($mehdate) 

返回FALSE。 那麼,如何增加已經格式化的$ mehdate?

+0

請參閱http://stackoverflow.com/questions/660501/simplest-way-to-increment-a-date-in-php –

+0

我發現如果我將'dm Y'更改爲'dmY',代碼將會工作正常。但我必須將日期顯示爲'd m Y'格式。實際上我想找到一種方法在第一塊代碼之後將$ mehdate轉換爲'd-m-Y'。 – xFredx

回答

3

如果使用DateTime類您的問題都會迎刃而解。

試試這個:

$mehdate = new DateTime('2011-11-25'); 

$mehdate->modify('+1 day'); 
echo $mehdate->format('d m Y')."\n"; // Gives 26 11 2011 

$mehdate->modify('+1 day'); 
echo $mehdate->format('d m Y');  // Gives 27 11 2011 
+0

謝謝你的解決方案。 – xFredx

0
date_default_timezone_set('Europe/Moscow'); 
$mehdate = "2011-11-25"; 
$mehdate = strtotime ('+1 day', strtotime($mehdate)); 
$mehdate = date ('d m Y', $mehdate); 
echo $mehdate, "\n"; 

結果

26 11 2011 
+0

謝謝你的回覆!但是我應該怎麼做再增加一美元? – xFredx

+0

如果答案解決了您的問題,請將其選爲正確答案,以便其他人可以獲益。有幾種方法可以解決你的問題。不過,我只是幫助您在代碼中發現問題,以便繼續進行您的工作。希望能幫助 –

+0

多一次?然後遵循@Object Manipulator方法。多數民衆贊成 –

0

對於像我這樣的新手有一個簡單的建議:不要使用'D M Y'格式,你最好與'd-M-Y'操作。

或者您必須使用DateTime class,因爲它建議使用Object Manipulator。