我遇到了一个我无法解决的问题:
我希望增加一个日期,今天就说:$today = date("Y-m-d")
,3年内3个月。
示例:2014-09-16
- >增加3个月变为2014-12-16
- >增加3个月会变为2015-02-16
,依此类推,直到我的约会日期为3年,在我们的示例中2017-09-16
。
答案 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));
}
答案 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/>";
}
?>