PHP

【PHP】strtotimeを使って指定日付の1ヵ月前では無く前月末日付を取得する方法

PHPのstrtotime関数を使って指定日の1か月前日付を取得することはあったのですが、今回は指定日の前月末日付を取得する方法をご紹介します。

strtotimeを使って指定日の1か月前日付を取得するPHP記述

※指定日を「2022-07-31」とした場合、出力結果は「2022-07-01」となります。6月末日付ではなく30日前ってことになるんですかね。(何だか計算方法がややこしいです)

<style>
echo date('Y-m-d', strtotime('2022-07-31' . '-1 month'));
//出力結果:2022-07-01

strtotimeを使って指定日付の1ヵ月前では無く前月末日付を取得するPHP記述

※指定日を「2022-01-31」とした場合、出力結果は「2021-12-31」となります。指定日を「2022-01-10」とした場合も出力結果は「2021-12-31」になります。

echo date('Y-m-d', strtotime('2022-01-31' . 'last day of previous month'));
//出力結果:2021-12-31
echo date('Y-m-d', strtotime('2022-01-10' . 'last day of previous month'));
//出力結果:2021-12-31

strtotimeを使って翌月末日付を取得するPHP記述

※指定日を「2022-01-31」とした場合、出力結果は「2022-02-28」となります。

echo date('Y-m-d', strtotime('2022-01-31' . 'last day of next month' ));
//出力結果:2022-02-28

月末日付では無く月の初日を出力したい場合は「last」を「first」にすると取得できます。

 
※流用される場合は自己責任でお願いします。