プログラム

PHP:配列に入った祝日を表示用に流し込み

祝日やスケジュールなど、「特定の日」を強調表示するなどのためのデータを配列から流し込む事例です。

祝日配列

$holiday_arr = array(
 '0101'=>'元日',
 '0114'=>'成人の日',
 '0211'=>'建国記念日'
);

DateTimeオブジェクトから出力しやすい形式で日付をキーとして、名称を並べた配列にします。

祝日を当該の日に組み込む

元となるカレンダー部分の処理は下記です。

DateTimeオブジェクトをformatして、祝日配列のキーと対応させることで、存在すれば配列に祝日名を組み込みます。

$now = new DateTime();
$last = $now->format('t');
for($i=1; $i<=$last; $i++) {
 $week = $tmpdt->format('w');// 曜日を取得

// ※※祝日判定用に月日文字列を準備※※
 $tmpdt_str = $tmpdt->format('md');

 /*
 * ここに月初めの週の前を埋める処理
 * */

 // 配列に日付をセットする部分
 $calendar[$j]['day'] = $i;
 // ※※月日文字列に該当する項目が祝日配列にあれば、追加する。※※
 $calendar[$j]['holiday'] = isset($holiday_arr[$tmpdt_str])?$holiday_arr[$tmpdt_str]:'';
 
 $j++;
 $tmpdt->modify("+1 day");
 /*
 * ここに月末日の週を金曜まで空要素で埋める処理
 * */
}

お問い合わせフォーム

気になる方はコチラからお問い合わせ!
必須お名前
必須メールアドレス
必須郵便番号
必須ご住所
必須電話番号
ご相談内容
必須メッセージ本文

コメントを残す

*