重複の可能性:
PHP DateTime::modify の加算と減算の月
開始日 (つまり 2011-01-30) があり、1 か月追加したいと考えています。
問題は、月とは何かを定義することです。したがって、次のコードを使用すると:
$d1 = DateTime::createFromFormat('Y-m-d H:i:s', '2011-01-30 15:57:57');
$d1->add(new DateInterval('P1M'));
echo $d1->format('Y-m-d H:i:s');
次の結果が得られます: 2011-03-02 15:57:57
問題は、次のルールを使用する必要があることです。
- 1 か月を追加すると、月の部分に 1 が追加され、日の部分が残ります (2011-01-15 は 2011-02-15 になります)
- 終了する月にその日が存在しない場合は、最後の存在する日を取得します (2011-01-30 は 2011-02-28 になります)。
これを行うことができるphpに共通の関数はありますか、それとも自分でコーディングする必要がありますか? たぶん、パラメーターか何かが足りないだけです!?