PHPで祝日を含めたカレンダーを作成(月移動可)

月の移動は、GETパラメータで?date=2015-01と入力する。

祝日取得について
・googleの公開xmlフィードを使っているため、仕様変更があるとデータをとれなくなる。
・Google calendar API の仕様変更があるとデータをとれなくなる。
・前後1年分までの祝日を表示可能(今が2015年の場合、2013年以前と2017年以降は取れない)

2015年11月18日あたりにXMLフィードが廃止されたため、祝日が取得できなくなってました。
なので、GoogleAPIを使って取得する方法に変更しました。
キャプチャ

参考
PHPでカレンダーを作成しよう
Google APIキーの取得方法とカレンダーAPIで祝日を取得する方法

items as $item) {
	            $date = strtotime((string) $item->start->date);
	            $title = (string) $item->summary;
	            $holidays[date('Y-m-d', $date)] = $title;
	        }
	
	        // 祝日の配列を並び替え
	        ksort($holidays);
	    }
	
	    return $holidays; 
	}
	
	// 祝日取得
	$national_holiday = japan_holiday($y);
?>


< 前の月 次の月 >
"; } $d = 1; while (checkdate($m, $d, $y)) { // 日曜:赤色 if(date("w", mktime(0, 0, 0, $m, $d, $y)) == 0) { echo ""; } // 土曜:青色 elseif(date("w", mktime(0, 0, 0, $m, $d, $y)) == 6) { echo ""; } // 祝日:黄色 elseif(!empty($national_holiday[date("Y-m-d", mktime(0, 0, 0, $m, $d, $y))])) { echo ""; } // 土日祝以外 else { echo ""; } // 週の始まりと終わりでタグを出力 if (date("w", mktime(0, 0, 0, $m, $d, $y)) == 6) { // 週を終了 echo ""; // 次の週がある場合は新たな行を準備 if (checkdate($m, $d + 1, $y)) { echo ""; } } $d++; } // 最後の週の土曜日まで空のセルを作成 $wdx = date("w", mktime(0, 0, 0, $m + 1, 0, $y)); for ($i = 1; $i < 7 - $wdx; $i++) { echo ""; } ?>
$d$d$d$d
 
よかったらシェアしてね!

この記事を書いた人

目次
閉じる