プログラミング

[PHP]カレンダーに祝日を表示する方法[わかりやすく解説]

みなさんこんにちは!ワトスンです。
今回は、、

PHPでカレンダーの中に祝日名を表示するにはどうしたらいいの?祝日の日だけclassをつけたい。難しいの?

といった疑問に答えます。
 

■読んでほしい人
PHPの基礎を理解できている人/PHPでカレンダーの作り方を理解できている人
 

PHPでのカレンダー作成方法については下の記事をご覧下さい。

今回はカレンダーを作成できている前提で、「祝日を表示させる方法」をご紹介していきます。

祝日を取得するにあたって、「GoogleカレンダーAPI」を使用していきます。

わかりにくいプログラムはできるだけ除き、シンプルにわかりやすくご紹介していきますので初心者の方も安心してご覧下さい。
 

■完成画像
[PHP]カレンダーに祝日を表示する方法[わかりやすく解説]

PHP言語でカレンダーに祝日を表示させる方法

カレンダーに祝日を表示させる方法をご紹介していきます。

手順としては、

1:全ての祝日を取得する
2:各日の祝日名を取得する
3:日付と祝日を照らし合わせる

といった感じです。

それぞれの工程を1つ1つ丁寧に解説してますので、ぜひご覧下さい。

全ての祝日を取得する

まずは「GoogleカレンダーAPI」を使用して、カレンダーの祝日だけを取得していきます。

注意

APIの取得方法は「GoogleカレンダーAPI取得方法」からご覧下さい。
今回はAPIが取得できているものとして解説していきます。

このAPIを使用して祝日の配列を取得する関数(getHolidays)を作成します。

プログラムは以下の通り組んでいきます。

といった感じで祝日を取得します。

上のプログラムで出てきた関数「sprintf関数」と「file_get_contents関数」の使い方がわからない方は、

sprintf関数の使い方
file_get_contents関数の使い方

からご確認下さい。

ちなみに作成したgetHolidays関数を出力して確かめてみると、、

getHolidays関数の出力

このような感じになっています。
「いつにどんな祝日があるか」という情報が配列で存在しています。

上のプログラムでは祝日の情報を取得しただけなので、祝日情報からそれぞれの「祝日名」だけを取得していきます。

各祝日名を取得する

祝日情報からそれぞれの「祝日名」だけを取得していきます。

祝日名だけを取得していく関数(display_to_Holidays)を作成します。

プログラムは以下の通り組んでいきます。

といった感じで祝日名を取得します。

上のプログラムで使用した「array_key_exists関数」の使い方がわからない方は、「array_key_exists関数の使い方」をご覧下さい。

ここまででそれぞれの祝日名を取得することができたので、あとはこれをカレンダーの日付と照らし合わせて表示させていきます。

日付と祝日を照らし合わせカレンダーに表示

最後に、日付と祝日を照らし合わせカレンダーに祝日名を表示させていきます

先ほど作成した関数「display_to_Holidays関数」は祝日名を取得しただけです。

「display_to_Holidays関数」では引数が2つ出てきました。

・$date
・$Holidays_array

の2つです。

「display_to_Holidays関数」は、

・$Holidays_arrayの中にある祝日情報の配列
・$date(1月1日〜12月31日)の1日ずつ全て

を確認していく関数です。

例:
2021-02-01は祝日があるかな?→ない→祝日名がないので無視。はい次!



2021-02-23は祝日があるかな?→建国記念日だ!→祝日名をゲット!!



2021-12-31は・・・

みたいなイメージです。

つまり、$date(1/1~12/31の各日付)と$Holidays_array(祝日)を照らし合わせる手順が必要になってきます。

$dateに1月1日から順番に日付を挿入していく必要があります。
365個1つずつ挿入するのは大変なのでプログラムを組んでいきます。

そしてカレンダーに祝日の場合は祝日名を表示していきます。

プログラムは以下の通り組んでいきます。

といった感じでカレンダーに祝日名を表示させます。

カレンダーの細かい作成方法は、下↓の記事をご覧下さい。

以上でカレンダーに祝日を表示させる手順は終わりです。

完成形のプログラム

最後にコピペでも使用できるように、全てまとめたプログラムを置いておきます。↓

長いですが全て理解できたでしょうか。。。

コピペで終わらせず1つ1つ理解しよう

今回は「PHPでカレンダーに祝日を表示させる方法」をご紹介してきました。

PHP言語初心者の方はぜひ挑戦して欲しいです。

プログラミングは基本独学でできます。
正直プログラミングスクールなんか通う必要はないと思います。

ですが独学でも正しく学んでいかないと成長スピードは遅くなります。
どんどん成長していくにはとにかくその言語にたくさん触れていくことが大切です。

なんでもいいのでとりあえず作ってみる。すると知らぬ間に成長しています。
どんどん挑戦していって失敗を繰り返して成長していきましょう。

コピペで終わらせず、「なんでこんなプログラムになるのか」など1つ1つ考え理解していって下さい。

わからないことがあれば気軽に聞いて下さい
暇人なのですぐ答えます!!
お互い頑張っていきましょう。

以上です。

コメントを残す

メールアドレスが公開されることはありません。

関連記事