TL;DR
-
Cake\I18n\Timeクラスが用意するmodifyメソッドの挙動に関して
(以下、modifyと呼ぶ) - modifyは、生成されたインスタンス自身を上書く習性がある(ようだ)
- 以下のサンプルコードを参考にして欲しい
サンプルコード
$time = new Cake\I18n\Time();
for ($i = 0; $i < 3; $i++) {
// 主力結果を見易くするためにあえて改行コードを付ける
echo $time->i18nFormat('yyyy-MM') . "\n";
echo $time->modify('next month')->i18nFormat('yyyy-MM') . "\n";
}
/*
* 期待値
*
* 2020-01
* 2020-02
* 2020-01
* 2020-02
* 2020-01
* 2020-02
*
*/
/*
* 実行値
*
* 2020-01
* 2020-02
* 2020-02
* 2020-03
* 2020-03
* 2020-04
*
*/
公式ドキュメントはこちら: https://book.cakephp.org/3/ja/core-libraries/time.html