我使用这个语法来增加一天以上,但是当我把这个格式仍然给我错误的日期像这样。"01/01/1970"但我想要这样的格式和日期"25/08/2016"。
$today = '24/08/2016';
$nextday = strftime("%d/%m/%Y", strtotime("$today +1 day"));
所以请告诉我我该怎么做。提前谢谢。
可以使用strtotime。
$your_date = strtotime("1 day", strtotime("2016-08-24"));
$new_date = date("Y-m-d", $your_date);
如果你想使用DateTime:
$today = '24/08/2016';
$nextDay = DateTime::createFromFormat('d/m/Y', $today)
->add(new DateInterval('P1D'))
->format('d/m/Y');
重要的是要注意-
和/
在日期中的不同解释。如果您使用-
, php将确定它是DD-MM
,如果您使用/
, php将确定它是MM-DD
。所以你需要使用-
而不是/
<?php
$today = '24-08-2016';
echo $nextday = date("d-m-Y", strtotime("$today +1 day"));
?>
见下面完美的工作代码
<?php
echo $startDate = date('Y-m-d H:i:s'); echo "<br/>";
echo $nextDate = date("Y-m-d H:i:s", strtotime("$startDate +1 day"));
?>
你应该用-
代替/m/d/y或d-m-y格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;而如果分隔符是破折号(-)或点(.),则假定采用欧洲** d-m-y格式**.
参考:http://php.net/manual/en/function.strtotime.php
试试这个:
$today = '24/08/2016';
$today = str_replace('/', '-', $today);
$today = date('Y-m-d', strtotime($today));
$nextday = date("d/m/Y", strtotime($today. "+1 day")); // Output: 25/08/2016
请使用下面的代码
<?php
$today = '24/08/2016';
$today = explode('/',$today);
$nextday = date('d/m/Y',mktime(0,0,0,$today[1],$today[0]+1,$today[2])));
?>