はじめに
DateTime
型のmodify()
メソッドの認識が不十分だったので自分用メモ。
コード
$date = new \DateTime('2018-05-31');
echo $date->modify("+1 month")->format("Y-m-d"); // 2018-07-01
echo $date->modify("+2 month")->format("Y-m-d"); // 2018-07-31
echo $date->modify("+3 month")->format("Y-m-d"); // 2018-08-31
echo $date->modify("-1 month")->format("Y-m-d"); // 2018-05-01
echo $date->modify("-2 month")->format("Y-m-d"); // 2018-03-31
echo $date->modify("-3 month")->format("Y-m-d"); // 2018-03-03
echo $date->modify("last day of +1 month")->format("Y-m-d"); // 2018-06-30
echo $date->modify("last day of +2 month")->format("Y-m-d"); // 2018-07-31
echo $date->modify("last day of +3 month")->format("Y-m-d"); // 2018-08-31
echo $date->modify("last day of -1 month")->format("Y-m-d"); // 2018-04-30
echo $date->modify("last day of -2 month")->format("Y-m-d"); // 2018-03-31
echo $date->modify("last day of -3 month")->format("Y-m-d"); // 2018-02-28