年によって日が変わるイベント(移動祝日)の日付をphpで求める方法

イベント期間中にバナーを表示したい!文言を表示したい!という事があると思います。
その場合、開始日~終了日をプログラムに組み込めばいいのですが、母の日のように5月の第2日曜日といった曜日によって日付が毎年変わる場合にどう対応するか迷うことがあるかと思います。
そんな年によって日程が変わるイベント日の求め方を記しておきます。
※ちなみに年によって日付が変動する祝日を移動祝日(いどうしゅくじつ)と呼ぶそうです。

年によって日が変わるイベントには以下のようなイベントがあります。
※ほかにあれば随時追加していきます

・成人の日:1月の第2月曜日
・母の日:5月の第2日曜日
・父の日:6月の第3日曜日
・海の日:7月第3月曜日
・敬老の日:9月第3月曜日
・スポーツの日(体育の日):10月の第2月曜日(※2020年より)

成人の日:1月の第2月曜日

// 現在の年を取得
$current_year = date('Y');
// 成人の日の日付を計算
$seijin_no_hi = date('Y年m月d日', strtotime("second Monday of January $current_year"));
// 日付を出力
echo "成人の日の日付は、$seijin_no_hi です。";
実行結果:成人の日の日付は、2024年01月08日 です。

母の日:5月の第2日曜日

// 現在の年を取得
$current_year = date('Y');
// 母の日の日付を計算
$mothers_day = date('Y年m月d日', strtotime("second Sunday of May $current_year"));
// 日付を出力
echo "母の日の日付は、$mothers_day です。";
実行結果:母の日の日付は、2024年05月12日 です。

父の日:6月の第3日曜日

// 現在の年を取得
$current_year = date('Y');
// 父の日の日付を計算
$fathers_day = date('Y年m月d日', strtotime("third Sunday of June $current_year"));
// 日付を出力
echo "父の日の日付は、$fathers_day です。";
実行結果:父の日の日付は、2024年06月16日 です。

海の日:7月第3月曜日

// 現在の年を取得
$current_year = date('Y');
// 海の日の日付を計算
$umi_no_hi = date('Y年m月d日', strtotime("third Monday of July $current_year"));
// 日付を出力
echo "海の日の日付は、$umi_no_hi です。";
実行結果:海の日の日付は、2024年07月15日 です。

敬老の日:9月第3月曜日

// 現在の年を取得
$current_year = date('Y');
// 敬老の日の日付を計算
$keiro_no_hi = date('Y年m月d日', strtotime("third Monday of September $current_year"));
// 日付を出力
echo "敬老の日の日付は、$keiro_no_hi です。";
実行結果:敬老の日の日付は、2024年09月16日 です。

スポーツの日(旧 体育の日):10月の第2月曜日

// 現在の年を取得
$current_year  = date('Y');
// スポーツの日付を計算
$sports_day = date('Y年m月d日', strtotime("second Monday of October $current_year"));
// 日付を出力
echo "スポーツの日付は、 $sports_day です。";
実行結果:スポーツの日の日付は、2024年10月14日 です。