2016-04-24 54 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。