質問: ### 前提・実現したいこと なぜ$next=$thisMonth->modify(' +1 month')->format('Y-m'); は+1monthされないかがわからない ここに質問の内容を詳しく書いてください。 (例)PHPでカレンダーなシステムを作っています。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 modify(' -1 month')->format('Y-m'); $next=$thisMonth->modify(' +1 month')->format('Y-m'); var_dump($prev); var_dump($next); exit; php?> エラーメッセージ "2018-08" object(DateTime)#2 (3) { ["date"]=> string(26) "2018-08-01 23:50:07.056953" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } string(7) "2018-07" string(7) "2018-08" ### 該当のソースコード ```ここに言語名を入力 ソースコード modify(' -1 month')->format('Y-m'); $next=$thisMonth->modify(' +2 month')->format('Y-m'); var_dump($prev); var_dump($next); exit; php?> ### 結果 "2018-08" object(DateTime)#2 (3) { ["date"]=> string(26) "2018-08-01 23:50:07.056953" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } string(7) "2018-07" string(7) "2018-09" ここに問題に対して試したことを記載してください。 $next=$thisMonth->modify(' +1 month')->format('Y-m'); では9月になってくれません なんでですか ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: `DateTime::modify`は、その名の通り**オブジェクト自体を変更して**、そのオブジェクト自身を返します(リファレンス)。 なので、`$thisMonth`は`$prev`の計算でで1ヶ月戻ってから`$next`の計算で1ヶ月進んで、もとに戻ります。