PHPを使ってカレンダーを表示したい、作りたいという場合、皆さんだったらど のようにして実現しますか?日付を計算して作るのもいいかもしれません。しか し、計算するのが面倒、あまり手間を掛けたくない、そんなとき強い助けになる ものがあります。PEAR::Calendarです。今回はこのPEAR::Calendarを使ったカレ ンダー作成を紹介します。

このライブラリはベータ版なので、pearコマンドを使用して

pear install calendar-beta

で、インストールすることができます。

では、早速使ってみましょう。以下のスクリプトを実行してみてください。

<?php

require_once 'Calendar/Month/Weekdays.php';

$calMonth = new Calendar_Month_Weekdays(200680);
$calMonth->build();
echo 
'<table><thead><tr>';
echo 
'<th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th>
</th><th>日</th>'
;
echo 
'</tr></thead><tbody>';
while (
$day $calMonth->fetch()) {
    if (
$day->isFirst()) {
        echo 
'<tr>';
    }
    if (
$day->isEmpty()) {
        echo 
'<td>&nbsp;</td>';
    } else {
        echo 
'<td>'.$day->thisDay().'</td>';
    }
    if (
$day->isLast()) {
        echo 
'</tr>';
    }
}
echo 
'</tbody></table>';

?>

2006年8月のカレンダーが表示されます。これで完成です。簡単だと思いませんか?

重要な部分は、

$calMonth = new Calendar_Month_Weekdays(2006, 8, 0);

で、いつのカレンダーを作成するかをここで決めることができます。第1引数は 年、第2引数は月、第3引数は週の開始曜日(例えば0なら日曜日から、2なら火曜 日から)となっています。あとはbuildメソッドでカレンダーを作成しfetchメ ソッドで作成された日付を取り出すだけになります。

日付を計算しゼロからカレンダーを作成することも勉強になっていいと思います が、PEAR::Calendarを利用すると、このように簡単にカレンダーを作成すること ができます。皆さんもぜひ使ってみてはいかがでしょうか。



(アシアル 熊谷裕志)


この記事は、アシアルが運営するPHP開発者のためのポータル&コミュニティサイト「PHPプロ!」で毎週配信しているPHP・TIPSメーリングリストを再録したものです。
同サイトでは、他にもPHP最新ニュースや、困ったときのQ&A掲示板、初心者向けのPHP講座など、PHP開発者をサポートする情報を掲載しています。