我让用户输入日期。我应该如何从他们的输入中返回一个日期并将其添加3年?我尝试使用mktime
和date
,但效果不佳。
$input_date = 2010-03-28
我的解决方案目前只是3年前给定日期的基本数学。
$input_date = $input_date + 3000;
假设我想给出4年零4个月10天的日期
$future_date1 _datum = mktime(0, 0, 0, date("m")-2, date("d"), date("Y")+3);
$future_date2 = mktime(0, 0, 0, date("m"), date("d"), date("Y")+3);
答案 0 :(得分:1)
您可以使用strtotime('+ 3 years')
或DateInterval
来实现面向对象的方法。
答案 1 :(得分:1)
DateTime()
提供了多种方法。这是PHP推荐进行日期数学运算的方式。
您可以使用DateTime::modify()
:
$date = new DateTime($input_date);
$date->modify('+3 months');
echo $date->format('Y-m-d');
// one-liner
echo (new DateTime($input_date))->modify('+3 months')->format('Y-m-d');
$date = new DateTime($input_date);
$date->add(new DateInterval('P3M'));
echo $date->format('Y-m-d');
// one-liner
echo (new DateTime($input_date))->add(new DateInterval('P3M'))->format('Y-m-d');
答案 2 :(得分:1)
使用strtotime功能:
$input_date = '2010-03-28';
$future_date = strtotime("+3 years", strtotime($input_date);
http://www.php.net/manual/en/function.strtotime.php
如果要返回YYYY-mm-dd,请返回时间戳:$future_date = date("Y-m-d", $future_date);