输入日期并在将来给出日期

时间:2014-05-24 12:49:31

标签: php

我让用户输入日期。我应该如何从他们的输入中返回一个日期并将其添加3年?我尝试使用mktimedate,但效果不佳。

$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);

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');

DateInterval()

$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);