PHP - 添加1天的日期格式mm-dd-yyyy

时间:2013-04-15 15:07:29

标签: php date

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

这让我发疯,看起来很简单。我是PHP的新手,但我无法弄清楚这一点。 echo返回01-01-1970

$ date将来自格式为POST的{​​{1}},我需要添加一天并将其作为新变量以供日后使用。

我是否必须将$ date转换为m-d-Y,添加1天,然后转换回Y-m-d? 我会更好地学习如何使用m-d-Y吗?

6 个答案:

答案 0 :(得分:106)

你去了

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

echo $tomorrow;

这将输出

04-16-2013

这两项功能的文档
date
strtotime

答案 1 :(得分:59)

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

See it in action

或者在PHP 5.4 +

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

<强>参考

答案 2 :(得分:7)

$date = strtotime("+1 day");
echo date('m-d-y',$date);

答案 3 :(得分:3)

使用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, 'Y-m-d');

输出

2000-01-2

答案 4 :(得分:1)

strtotime()无法识别您使用的格式。取代

$date = "04-15-2013";

通过

$date = "04/15/2013";

或者如果您想使用-,请使用前面年份的以下行:

$date = "2013-04-15";

答案 5 :(得分:0)

其实我想要一样的东西, 在给定的日期,获得一年的落后日期! : - )

来自@mohammad mohsenipur的上述回答 我通过他给出的链接进入了以下link

幸运的是,有一个与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, 'Y-m-d');

希望这个答案对某人也有帮助! : - )

祝你好运!