PHP strtotime +1 か月で 1 か月追加する [重複] 質問する

PHP strtotime +1 か月で 1 か月追加する [重複] 質問する

今日に 1 か月を追加する単純な変数があります。

$endOfCycle = date("Y-m", strtotime("+1 month"));

今日は 2013 年 1 月なので、2013-02 が返されるはずですが、代わりに 2013-03 が返されます。なぜ 3 月にジャンプするのかわかりません。

ベストアンサー1

今日は 1 月 29 日なので 3 月に移動します。月を追加すると 2 月 29 日になりますが、これは存在しないため、次の有効な日付に移動します。

これは多くの月の 31 日にも発生しますが、2 月の方が短いため、1 月から 2 月の場合により顕著になります。

月の日付ではなく、翌月だけを知りたい場合は、入力日付を現在の月の最初の日として指定する必要があります。これにより、月を追加した場合に常に正しい答えが得られます。

同じ理由で、常に翌月の最終日を取得したい場合は、まず、取得したい月の翌月の 1 日を計算し、そこから 1 日を引く必要があります。

おすすめ記事