PHP – 添加1天至date格式mm-dd-yyyy

<?php $date = "04-15-2013"; $date = strtotime($date); $date = strtotime("+1 day", $date); echo date('md-Y', $date); ?> 

这让我发疯,似乎很简单。 我很新的PHP,但我不明白这一点。 回声返回01-01-1970

$ date将来自一个POST格式为mdY ,我需要添加一天,并将其作为一个新的variables稍后使用。

我是否必须将$ date转换为Ymd ,添加1天,然后再转换回mdY ? 我会更好地学习如何使用DateTime

你去了

 $date = "04-15-2013"; $date1 = str_replace('-', '/', $date); $tomorrow = date('md-Y',strtotime($date1 . "+1 days")); echo $tomorrow; 

这将输出

 04-16-2013 

这两个function的文档
date
的strtotime

 $date = DateTime::createFromFormat('md-Y', '04-15-2013'); $date->modify('+1 day'); echo $date->format('md-Y'); 

看到它的行动

或在PHP 5.4以上

 echo (DateTime::createFromFormat('md-Y', '04-15-2013'))->modify('+1 day')->format('md-Y'); 

参考

  • DateTime::createFromFormat()

使用http://www.php.net/manual/en/datetime.add.php就好;

 $date = date_create('2000-01-01'); date_add($date, date_interval_create_from_date_string('1 days')); echo date_format($date, 'Ym-d'); 

产量

 2000-01-2 
 $date = strtotime("+1 day"); echo date('md-y',$date); 

您使用的格式不被strtotime()识别。 更换

 $date = "04-15-2013"; 

通过

 $date = "04/15/2013"; 

或者,如果你想使用-然后在前面的年份使用以下行:

 $date = "2013-04-15"; 

其实我想要的是相同的东西,为了得到一个落后的date,给定的date! 🙂

从@mohammad mohsenipur的上述回答的提示,我通过他给出的链接到以下链接!

幸运的是,有一个与date_add方法相同的方法,名为date_sub方法! :-)我做了以下工作,完成我想要的任务!

 $date = date_create('2000-01-01'); date_sub($date, date_interval_create_from_date_string('1 years')); echo date_format($date, 'Ym-d'); 

希望这个答案也能帮助别人! 🙂

祝大家好运!