| 今回は、PHP でカレンダーを作る方法を紹介する。日本語表記の曜日を求める方法に主眼を置いているので、表示レイアウトは簡便に済ませている。 |
サンプル・プログラム |
|
曜日と配列 |
|
|
PHP の組み込み関数 date は、指定した年月日の曜日を返すことができる。しかし、PHP は英語文化圏のソフトであるから、さすがに日本語で返すということはできない。 関数 date の書式として 'w' を指定すると、曜日番号(0 = 日曜 ~ 6 = 土曜)を求めることができる。これを利用し、日本語の曜日を返すことを考える。
0025: /** |
|
|
PHP には配列というデータ構造がある。Excel のような表形式のデータをあらわすための仕組みで、変数の一種である。 たとえば、曜日番号は以下のような表形式で表すことができる。
これを配列であらわすと、 $変数名[0] = '日';となる。[ ] の中にキーを記述する。 いちいち変数名を記述するのは面倒なので、関数 array を使い、 $変数名 = array('日', '月', '火', '水', '木', '金', '土', '日');と表記することもある。このとき、暗黙の了解として、キーは [0] からはじまる。 このように、あらかじめ決まっている表形式のデータ構造を配列にあらわしたものを「テーブル」と呼んだりする。さまざまな方面で応用される手法である。 ユーザー関数 getWeekJp は、組み込み関数 date が返す曜日番号をキーとし、日本語の曜日番号を値とする配列 $tbl_week をテーブルとしている。 与えられた年月日から曜日番号を算出するには、 mktime 、 mktime という 2 つの組み込み関数を利用する。 なお、古い PHP 処理系(Windows版 PHP4.x など)では、関数 date に指定できる年号が 1970 年~2038 年の間に限られる。そこで、この範囲外の年号を指定した場合はエラーとし、FALSE を返すようにした。 |
月の日数 |
|
|
月の日数を返すユーザー関数 getDaysInMonth も、配列を利用したテーブルをもつ。 1 月から 12 月までの月の日数は概ね固定であるが、閏年の年だけ 2 月が 29 日になる。 閏年の判定関数については、「PHP で閏年かどうか判定する」で紹介したものを流用している。
0042: /** |
|
参考書籍 |
|
|
|
参考サイト |
|
|
|
|
|
|
|
2009年07月28日 作成
2009年07月28日更新
Copyright by studio pahoo, (C)2009
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 ★本ページへのご意見・ご質問・お便りは、ここをクリックしてください。 |