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

这让我发疯,看起来很简单。我对 PHP 很陌生,但我无法弄清楚这一点。回声返回01-01-1970

$date 将来自POST格式中的a m-d-Y,我需要添加一天并将其作为新变量以供以后使用。

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

4

7 回答 7

127

你去吧

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

echo $tomorrow;

这将输出

04-16-2013

两个函数
date
strtotime的文档

于 2013-04-15T15:08:17.543 回答
63
$date = DateTime::createFromFormat('m-d-Y', '04-15-2013');
$date->modify('+1 day');
echo $date->format('m-d-Y');

看到它在行动

或 PHP 5.4+

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

参考

于 2013-04-15T15:10:40.647 回答
15
$date = strtotime("+1 day");
echo date('m-d-y',$date);
于 2016-12-12T14:33:12.227 回答
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
于 2013-04-15T15:11:56.650 回答
1

实际上,我想要同样的事情,在给定的日期获得一年的回溯日期!:-)

借助@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, 'Y-m-d');

希望这个答案也能帮助别人!:-)

祝大家好运!

于 2014-08-29T16:17:49.617 回答
1

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

$date = "04-15-2013";

经过

$date = "04/15/2013";

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

$date = "2013-04-15";
于 2013-04-15T15:10:31.897 回答
0

试试下面的代码:

<?php
   $date = "2022-01-05";
   $to_date = date('Y-m-d', strtotime($date.' +1 day')); 
   echo $to_date;
?>

Output:

2022-01-06
于 2022-01-05T11:25:28.503 回答