我的数据库中有两个字段,start_date
和interval
。根据这些值,我想计算其他日期。例如:
为了简单起见,start_date
是1月1日。间隔为3.这意味着每次日期月份应以3递增。最终结果应为:
01-01 // 1st of january
01-04 // 1st of april
01-07 // 1st of july
01-10 // 1st of october
另一个例子。 start_date
可能是第3名。间隔为6.最终结果应为:
03-05 // 3rd of may
03-11 // 3rd of november
我尝试过这样的事情:
$interval = 3;
for ($i = 1; $i <= 12; $i += $interval)
{
echo $start_date->addMonths($i)->format('m-d'); // I'm using carbon
}
但结果是:
02-01
05-01
08-01
11-01
首先从1
添加$i = 1
,然后启动实际循环并每次添加3。我不确定我应该为$i = 1
使用什么,或者是否可以使用for循环来完成。有什么提示吗?
PS。开始日期可以是任何日期,间隔可以是1到12之间的任何值。
答案 0 :(得分:1)
试试这个:
$start_date = strtotime("2017-05-03");
$interval = 6;
for ($i = 0; $i <= 12; $i += $interval) {
echo nl2br(date("Y-m-d", strtotime("+" . $i . " month", $start_date)) . "\n");
}
输出:
2017-05-03
2017-11-03
2018-05-03
答案 1 :(得分:0)
修正如下:
for ($i = $interval; $i <= 12; $i += $interval)
{
echo $start_date->addMonths($i);
}