phpで以下のようにDateTimeを使って年月一覧を出力するみたいなことしてたんですが
<ul>
<?php for ($i = 0, $date = new DateTime(); $i < 12; $i++, $date->add(new DateInterval('P1M'))): ?>
<li><?php echo $date->format('Y/m') ?></li>
<?php endfor; ?>
</ul>
これだと、本日5月31日のような日は、31日分追加されて6月越して7月になってしまいましたん。
$date = new DateTime();
echo $date->format('Y/m/d'); // 2018/05/31
$date->add(new DateInterval('P1M'));
echo $date->format('Y/m/d'); // 2018/07/01
modify使うと、正確に次月に得られました
$date = new DateTime();
echo $date->format('Y/m/d'); // 2018/05/31
$date->modify('first day of next month');
echo $date->format('Y/m/d'); // 2018/06/01
こわいこわい
<ul>
<?php for ($i = 0, $date = new DateTime(); $i < 12; $i++, $date->modify('first day of next month')): ?>
<li><?php echo $date->format('Y/m') ?></li>
<?php endfor; ?>
</ul>