指定年/月/回/曜日の日付

指定した年月の第○曜日の日付を抽出

1月第2月曜日や7月第3月曜日などを表示。

PHP

/** * * 指定年/月/回/曜日の日付 * * @param int $times 1-5 * @param string $W sun|mon|tue|wed|thu|fri|sat * @param int $Y * @param int $M */ function getDateWeekDay($times, $W, $Y, $M) { // 0 (日曜)から 6 (土曜) switch ($W) { case 'sun': $num = 0; break; case 'mon': $num = 1; break; case 'tue': $num = 2; break; case 'wed': $num = 3; break; case 'thu': $num = 4; break; case 'fri': $num = 5; break; case 'sat': $num = 6; break; } $max_day = 7 * $times; $min_day = $max_day - 7; // 5週目の最大値は指定年月の末日 if ($times == 5) { $max_day = date('t', mktime(0, 0, 0, $M, 1, $Y)); } // 指定回数目の日付から曜日マッチ処理を繰り返し for ($i = $max_day; $i > $min_day; $i--) { $date = date('Y-m-d', mktime(0, 0, 0, $M, $i, $Y)); if ($num == date('w', strtotime($date))) { return $date; break; } } return; }

サンプル

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について