添加6个月,直到它比今天更大

时间:2016-07-30 17:57:33

标签: php date for-loop

我有一个例如日期:2014-06-19,我需要一个循环,它会增加6个月,直到它比今天更大?

我该怎么做?

由于

4 个答案:

答案 0 :(得分:1)

简单while循环:

$today = new DateTime('today');
$input = new DateTime('2014-06-19');

while ($today > $input) {
    $input->modify('+6 months');
}

echo $input->format('Y-m-d'); // 2016-12-19

demo

答案 1 :(得分:0)

使用DateTimeDateInterval个对象的解决方案:

$input_date = new \DateTime("2014-06-19");
$six_months = new \DateInterval("P6M");
$now = new \DateTime();
$limit = (new \DateTime())->sub($six_months);

while ($input_date < $now && $input_date <= $limit) {
    $input_date->add($six_months);
}

print_r($input_date->format("Y-m-d"));  // 2016-06-19

答案 2 :(得分:-1)

<?php
echo date( "Y-m-d", strtotime( "2009-01-31 +1 month" ) ); // PHP:  2009-03-03
echo date( "Y-m-d", strtotime( "2009-01-31 +2 month" ) ); // PHP:  2009-03-31
?>

php.net month issue

答案 3 :(得分:-1)

$datetime = new DateTime();
$datetime->modify('+6 months');
echo $datetime->format('d');

$datetime = new DateTime();
$datetime->add(new DateInterval('P6M'));
echo $datetime->format('d');

或PHP版本5.4 +

echo (new DateTime())->add(new DateInterval('P6M'))->format('d');