PHP - 增加日期

时间:2014-09-16 12:35:23

标签: php

我遇到了一个我无法解决的问题:

我希望增加一个日期,今天就说:$today = date("Y-m-d"),3年内3个月。

示例:2014-09-16 - >增加3个月变为2014-12-16 - >增加3个月会变为2015-02-16,依此类推,直到我的约会日期为3年,在我们的示例中2017-09-16

5 个答案:

答案 0 :(得分:3)

是的,使用DatePeriod时这会更容易。它将递增日期,直到它到达结束日期。

示例:

$begin = new DateTime('2014-09-16'); // set the starting date
$end = new DateTime('2017-09-16'); // set the ending date
$interval = new DateInterval('P3M'); // 3 months interval
$range = new DatePeriod($begin, $interval, $end); // set the period
foreach($range as $date) {
    // so foreach three months, this will loop until the end date
    echo $date->format('Y-m-d') . '<br/>'; 
}

输出将是:

2014-09-16
2014-12-16
2015-03-16
2015-06-16
2015-09-16
2015-12-16
2016-03-16
2016-06-16
2016-09-16
2016-12-16
2017-03-16
2017-06-16

答案 1 :(得分:1)

echo date('Y-m-d', strtotime("+3 months"));

答案 2 :(得分:0)

您可以按照以下方式执行此操作

while (strtotime($date) < strtotime($end)) { 
$date = strtotime("+2 months", strtotime($date));
 }

详细阅读:http://php.net/manual/en/datetime.add.php

答案 3 :(得分:0)

您可以使用DateTime类:

$today = new DateTime('2014-09-16');
$formatted = $today->modify("+3 months");
echo $formatted->format('Y-m-d');

答案 4 :(得分:0)

它对我有用

<?php
$startDate = date("Y-m-d");
$endDate = date('Y-m-d', strtotime("+3 years", strtotime($startDate )));
echo $startDate."<br/>";
while(strtotime($startDate) < strtotime($endDate) ){
    $startDate = date('Y-m-d', strtotime("+3 months", strtotime($startDate )));
    echo $startDate."<br/>";
} 



?>