php 计算下个月

2023-04-15,

在使用如下方法计算当前日期以后的6个月的时候发现了问题

for($i = 0;$i<6;$i++){
    echo date('Y-m-d', mktime(0, 0, 0, intval(date('m'))+$i, date('d'), date('Y')));
    echo PHP_EOL;
}

返回结果如下

如果下月个没有29号就会出现问题

改下成如下,将天数d = 1

for($i = 0;$i<6;$i++){
    echo date('Y-m-d', mktime(0, 0, 0, intval(date('m'))+$i, 1, date('Y')));
    echo PHP_EOL;
}

恢复正常

其它方法
月份/12 求余

$month = date('n');
for($i = 0;$i<6;$i++){
    $m = $month + $i;
    $now_month = $m%12;
    echo $now_month == 0? 12:$now_month;
    echo PHP_EOL;
}