【PHP】第何週目の何曜日は何日?を最短で算出する方法
2020-10-23 613 1531PHPのstrtotime関数は非常に便利で、カレンダーを使用した予約システムなどで活躍してくれます。
今回は、月毎に第一週目の水曜日、第二週目の水曜日は何日かを求める最短の方法をご紹介。
<?php
$y = 2020; //任意
$m = 10; //任意
$jd = cal_to_jd(CAL_GREGORIAN, $m, 1, $y);
$month_name = jdmonthname($jd, 1);
$first_wed_day = date("j", strtotime("first Wednesday of {$month_name} {$y}"));
$second_wed_day = date("j", strtotime("second Wednesday of {$month_name} {$y}"));
$third_wed_day = date("j", strtotime("third Wednesday of {$month_name} {$y}"));
$fourth_wed_day = date("j", strtotime("fourth Wednesday of {$month_name} {$y}"));
//結果
$first_wed_day (7)
$second_wed_day (14)
$third_wed_day (21)
$fourth_wed_day (28)
?>
<コードの解説>
cal_to_jd関数は、日付をユリウス積算日に変換する。ちょっと何言っているか分からない。
jdmonthname関数は、January・Februaryなど月の名前を返します。
strtotime関数の指定方法がポイント!一行で第何週の何曜日が何日かを取得してくれます。
「first Wednesday」は第一週目の水曜日ですね。あとはofの後に、何年の何月のを指定します。
何月の指定が英語表記でないといけなさそう?なので、使い慣れないcal_to_jd関数とjdmonthname関数を使用しています。