問題 × 解決策

PHPで本日が祝日かどうかを判定してくれる「getHoliday」

問題

PHPで本日が祝日かどうかを判定するには?

解決策

「ぱふぅ家のホームページ」様が配布してくれている、PHPで本日が祝日かどうかを判定してくれるプログラム「pahooCalendar」を使用する。

 

PHPで本日が祝日かどうかを判定

「ぱふぅ家のホームページ」様が配布してくれている、PHPで本日が祝日かどうかを判定してくれるプログラム「getHoliday」をご紹介します。

プログラムをアップデートなされたようで、「getHoliday.php」ではなく、「pahooCalendar.php」を使用します。
(2020年6月21日に内容修正)

「getHoliday」を取得する。

以下のサイトへアクセスします。

【PHPで祝日を求める – ぱふぅ家のホームページ】
https://www.pahoo.org/e-soul/webtech/php02/php02-27-01.shtm

ダウンロードを行います。

下部にある「ダウンロード」ボタンをクリックします。

必要なファイルをコピーします。

ダウンロードしたzipファイル「getHoliday.zip」を解凍します。
解凍した「getHoliday」フォルダの中から使用するファイルは以下の1点です。

  • 直下にある「getHoliday.php」→「pahooCalendar.php」を任意のフォルダへコピーします。

「getHoliday」フォルダ内のファイル

getHoliday.php プログラムのサンプルになります。
このファイルを使用します。
pahooCalendar.php 暦計算クラス「pahooCalendar」が設定されたPHPプログラムです。
日の出・日の入り・月の出・月の入りの時刻、月齢、潮の大小を計算する PHPプログラムです。
このファイルを使用します。

「pahooCalendar.php」を修正する。(公式のプログラムが修正されたら不要となります)

「pahooCalendar.php」を修正します。
isHoliday」の箇所である1402~1404行が修正箇所になります。

修正前

function isHoliday($year, $month, $day) {
	return getHoliday($year, $month, $day, 'jp') == FALSE ? FALSE : TRUE;
}

修正後

function isHoliday($year, $month, $day) {
	return $this->getHoliday($year, $month, $day, 'jp') == FALSE ? FALSE : TRUE;
}

「getHoliday」の前に「$this->」を追加します。

getHoliday.php」→「pahooCalendar.php」を読み込む。

includeで「getHoliday.php」→「pahooCalendar.php」を読み込みます。

include(dirname(__FILE__)."/格納したフォルダ/pahooCalendar.php");

getHoliday.php」→「pahooCalendar.php」を使用して、祝日を判定する。

では実際に「getHoliday.php」→「pahooCalendar.php」を使用して、本日が祝日を判定してみます。

//pahooCalendarクラス
$pcl = new pahooCalendar();
$pcl->setLanguage('jp');
$y = date('Y');
$m = date('m');
$d = date('d');
if($pcl->isHoliday($y,$m,$d)){
    // 祝日である場合
    $holiday_data = $pcl->getHoliday($y,$m,$d,'jp');
}else{
    // 祝日でない場合
}

ポイント!

  1. $pcl = new pahooCalendar();」でpahooCalendarクラスを呼び出します。
  2. 関数は基本的には頭に「$pcl->」を付けて呼び出します。
  3. isHoliday」は引数に年、月、日の値を持たせることで、祝日ならばtrue、祝日でないならばfalseを返してくれます。
    なのでifで囲うことで祝日である場合の処理、祝日でない場合の処理を分岐することができます。
  4. そして「getHoliday」は引数に年、月、日の値と文字列「jp」を持たせることで祝日の名称を返してくれます。

関数「isHoliday」

引数 返り値
年の値、月の値、日の値
例:isHoliday( 2020, 1, 1 )
祝日ならばtrue、そうでないならばfalseを返します。

関数「getHoliday」

引数 返り値
年の値、月の値、日の値、文字列「jp」
例:getHoliday( 2020, 1, 1, ‘jp’ )
祝日ならば祝日の名称の文字列を返します。
例:getHoliday( 2020, 1, 1, ‘jp’ ) → ‘元旦’

コメント

コメントを残す

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

sixteen − five =

「問題 × 解決策」
月別アーカイブ一覧

「問題 × 解決策」
月別アーカイブ一覧