大家好,我想在我约会的30天内添加。我正在使用以下编码。
<?php
$next_due_date = date('05/06/2016', strtotime("+30 days"));
echo $next_due_date;
?>
但它只会回到“05/06/2016”!
请帮助我!
答案 0 :(得分:15)
不使用php的date()函数,它不准确且不可靠。
而是使用DateTime类
<?php
$date = new DateTime('2016-06-06'); // Y-m-d
$date->add(new DateInterval('P30D'));
echo $date->format('Y-m-d') . "\n";
?>
答案 1 :(得分:12)
请试一试。
echo date('m/d/Y',strtotime('+30 days',strtotime('05/06/2016'))) . PHP_EOL;
这将返回06/06/2016
。假设您的初始日期是m / d / Y格式。如果没有,请不要担心并使用它。
echo date('d/m/Y',strtotime('+30 days',strtotime(str_replace('/', '-', '05/06/2016')))) . PHP_EOL;
这将为您提供d / m / Y格式的日期,同时假设您的初始日期为d / m / Y格式。返回05/07/2016
如果输入日期是在mysql中,你可以直接在mysql上执行这个功能,就像这样。
DATE_ADD(due_date, INTERVAL 1 MONTH);
答案 2 :(得分:4)
您需要提供d/m/Y
而不是05/06/2016
尝试
$old_date = '05-06-2016';
$next_due_date = date('d-m-Y', strtotime($old_date. ' +30 days'));
echo $next_due_date;
答案 3 :(得分:4)
第一个参数是格式,而不是当前日期。
{% include "subtemplate.html" %}
如果要将<?php
$next_due_date = date('d/m/Y', strtotime("+30 days"));
echo $next_due_date;
添加到特定的开始日期,请使用30 days
函数的第二个参数来告诉它从哪里开始。
如果对功能如何工作有疑问,请参阅手册。
答案 4 :(得分:2)
$date = "1998-08-14";
$newdate = strtotime ( '30 day' , strtotime ( $date ) ) ;
$newdate = date ( 'Y-m-j' , $newdate );
echo $newdate;