1. トップ
  2. phpでgoogleカレンダーAPIから祝日を取得する方法

いちいち祝日増えたりする度にメンテナンスなんてしたくないよ!って人向け。

	function getHoliday($starttime,$endtime){
		$holidays_url = sprintf(
			'http://www.google.com/calendar/feeds/%s/public/full-noattendees?start-min=%s&start-max=%s&alt=json' ,
			'japanese__ja%40holiday.calendar.google.com',
			date('Y-m-d',$starttime), // 取得開始日
			date('Y-m-d',$endtime) // 取得終了日
		);
		if($results=file_get_contents($holidays_url)) {
			$results = json_decode($results, true);
			$holidays = array();
			if(!empty($results['feed']['entry'])){
				foreach($results['feed']['entry'] as $val) {
					$date = $val['gd$when'][0]['startTime']; // 日付を取得
					$title = $val['title']['$t']; // 何の日かを取得
					$holidays[$title] = $date; // 日付をキーに、祝日名を値に格納
				}
			}
			asort($holidays); // 日付順にソート
		}
		return $holidays;
	}

引数はタイムスタンプで入れてください。