*

PHPで指定日の祝日を取得する方法 GoogleAPI利用

公開日: : 最終更新日:2014/04/05 PHP, 開発

google APIを利用して指定日が祝日かどうか取得する

技術的な内容を書く場合は載せてるコードが間違ってないか確かめる必要があると思う・・・
後は検証したコードがどのVersionで動いているのか出来る限り載せる必要もあるかと。

参考にしてはいけない間違い記事
[PHP]指定した日が祝日かどうかを判定する関数
関数の閉じ方が間違っているし、strtotimeの使い方もオブジェクトのアクセス方法も意味不明。。。
strtotimeの引数はintになっているのに文字列を渡してる時点で、自分の理解を超えてしまってます。
もしかしてAPIアクセス時にタイムスタンプからでも判別できるのかなと思ったのですが、書式(Y-m-d)が決まっているっぽいです。

動作環境

PHP 5.3.1

修正コード

  	public function isJPNationalHoliday($date)
  	{
		$holidays_url = sprintf(
		'http://www.google.com/calendar/feeds/%s/public/full-noattendees?start-min=%s&start-max=%s&max-results=%d&alt=json' ,
		'outid3el0qkcrsuf89fltf7a4qbacgt9@import.calendar.google.com' , // 'japanese@holiday.calendar.google.com' ,
		//$date ,date('Y-m-d',strtotime('+1 day',$date) ,1);
		//修正箇所
		$date ,date("Y-m-d", strtotime("$date +1 day")) ,1);

		if ( $results = file_get_contents($holidays_url) ) {
			$results = json_decode($results);
			//修正箇所 $reultsはオブジェクトで返却される
			if (isset($results->feed->entry)) {
				return TRUE;
			}
			// in case php version < 5.3, use PEAR JSON.php
			//$JSON = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
			//$results = $JSON->decode($results);
			//if(isset($results['feed']['entry'])){
			//	return TRUE;
			//}
		}
		return FALSE;
	}

JSONデコード

Services_JSONでデコードした場合は配列で返却されるので配列のアクセス方法でチェックできますが、json_decodeの場合はオブジェクトとして返却されるのでアロー演算子を使用してアクセスします。

自分も書くときは気をつけないといけないと再認識しました。。。

関連記事

jQuery 要素の相対位置

jQueryを使って要素の相対位置を調べる Google先生に「jquery offsetLeft

記事を読む

Macで ローカルサーバー構築 Postfix基本編

Macで ローカルサーバー環境を構築するまで Apache起動編 ネットでの情報は必要最低限しか載

記事を読む

jQuery removeClass 特定のクラスを全て削除

特定のクラスを全て削除 フォームを作成した時に、入力項目に不備があった場合は目立つ様にinput属

記事を読む

Apache 500 Internal Server Error

久しぶりに自宅のローカルサーバーを動かしたら「Server error!」が出てゑっ!? 解決方法

記事を読む

Androidで課金アプリ作製 エラー編(-1008:Unknown error)

Androidで課金アプリ作製 エラー編 In-app Billing v3を使用したアプリ開発で

記事を読む

jQuery 水平スクロール&cssでカスタム可能なスクロールバーなプラグイン

水平スクロール&cssでカスタム可能なスクロールバーなプラグイン jQueryを使ったプラグインは

記事を読む

Androidで課金アプリ作製 プロセス間通信予習編

Androidで課金アプリ作製 プロセス間通予習編 課金アプリを作成の際にaidlファイルを利用す

記事を読む

Androidで課金アプリ作製 定期購読サンプルコード編

Androidで課金アプリ作製 定期購読編 In-app Billing v3を使用したアプリ開発

記事を読む

Macで ローカルサーバー構築 PHP設定編

Macで ローカルサーバー環境を構築するまで PHP設定編 ネットでの情報は必要最低限しか載ってな

記事を読む

Macで ローカルサーバー構築 ローカルネットワーク参加編

Macで ローカルサーバー環境を構築するまで Apache設定編 ネットでの情報は必要最低限しか載

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

jQuery 水平スクロール&cssでカスタム可能なスクロールバーなプラグイン

水平スクロール&cssでカスタム可能なスクロールバーなプラグイン j

C言語 バッファオーバーランまで 関数の引数ポインタ

関数引数としてのポインタ 今回は関数引数としてのポインタに関して。

C言語 バッファオーバーランまで ポインタ考察編

趣旨 ただC言語を勉強してもモチベーションがあがり辛いので、 取り

Google Cloud Messaging プロジェクトナンバー API Key取得編 2014/07最新版

Google Cloud Messaging プロジェクトナンバー A

jQuery removeClass 特定のクラスを全て削除

特定のクラスを全て削除 フォームを作成した時に、入力項目に不備があっ

→もっと見る

PAGE TOP ↑