在使用如下方法计算当前日期以后的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;}