我想在特定日期之后获得未来的日期,我使用这个strtotime()
功能,但它对我不起作用
然后我使用以下代码
$d1='2012-11-08';
$d2=date($d1, strtotime('+3 days'));
echo $d2;
输出是 2012-11-08 2012-11-08
不是 2012-11-11
但输出不是 2012-11-11 输出是 2012-11-08 我无法解决这个问题我做错了什么以及如何解决这个问题?
我想在特定日期之后获得未来的日期,我使用这个strtotime()
功能,但它对我不起作用
然后我使用以下代码
$d1='2012-11-08';
$d2=date($d1, strtotime('+3 days'));
echo $d2;
输出是 2012-11-08 2012-11-08
不是 2012-11-11
但输出不是 2012-11-11 输出是 2012-11-08 我无法解决这个问题我做错了什么以及如何解决这个问题?
$d1='2012-11-08';
$d2=new DateTime($d1);
$d2->modify('+3 day');
echo $d2->format('Y-m-d');
尝试使用date_add
$d1 = '2012-11-08';
$d2 = date_add($d1, date_interval_create_from_date_string('3 days'));
echo $d2;
http://www.php.net/manual/en/datetime.add.php
如果您没有运行 PHP 5.3,这应该可以工作:
$d1 = '2012-11-08';
$d2 = strtotime('+3 days', strtotime($d1));
echo date('Y-m-d', $d2);
实际上你错误地添加了strtotime()
,当你使用当前日期时它可以工作,如果你想添加自定义日期,你可以试试这个,
<?php
$d1='2012-11-08';
$d2 = strtotime ( '+3 day' , strtotime ( $d1 ) ) ;
$d3 = date ( 'Y-m-d' , $d2);
?>
如果要从当前日期添加日期,请使用以下命令,
$d1 = Date('Y-m-d', strtotime("+3 days"));
您使用的date()
功能不正确。根据文档,date()
采用格式字符串,后跟可选的时间戳。你给它一个日期字符串和另一个日期。
你可以像这样做你想做的事,其中strtotime
用于修改日期,
$date = "2012-11-08";
echo date("Y-m-d", strtotime($date. " + 3 days"));
但是,如果您运行的是 PHP 5.2+,您可能应该使用DateTime类,因为它具有更好的日期处理能力,并且更容易看到它发生了什么。
$datetime = new DateTime("2012-11-08");
$datetime->modify("+ 3 days");
echo $datetime->format("Y-m-d");
虽然strtotime()
是一个方便的工具,但它容易出现语言环境问题。
我会改为使用 PHP 的成熟DateTime
类,例如
$dt = new DateTime($d1);
echo $dt->add(new DateInterval('P3D'))->format('Y-m-d');