PEAR::Calendarライブラリの話@たなか
お盆休みは満喫できましたか?
こんばんは、たなかです。
私は、お盆にキャンプに出掛けたのですが
全身、火傷状態になって帰ってきました(>_<)
今はもう痛くなくなりましたが、焼けた皮がムケムケで
現在、脱皮中でございます。
脱皮が終わる頃には、新しい自分に出会える事でしょう。
さて今日は、PEAR::Calendarライブラリの話です。
PEAR::Calendarライブラリとは、その名の通りで
カレンダーを扱えるライブラリです。
PEAR マニュアルの一文には、こう書いてあります。
「構造化されたデータとして何種類かの形式のカレンダーを 提供するパッケージです。」
おお!何種類かの形式!!
これは、試さずにはいられません(^^ゞ
それでは、簡単なサンプルでも書いてみます。
<html>
<head>
<title>カレンダー</title>
</head>
<body>
<h3>カレンダー</h3>
<?php
require_once("Calendar/Month/Weeks.php");
##年月の取得
$y = isset($_GET["ymd"]) ? substr($_GET["ymd"], 0, 4) : date("Y");
$m = isset($_GET["ymd"]) ? substr($_GET["ymd"], 5, 2) : date("m");
##オブジェクト作成
$calendar = new Calendar_Month_Weeks($y, $m, 0);
$calendar->build();
##前後の年月を取得
$ymdlink = $_SERVER["PHP_SELF"] . "?ymd=%s";
$prev_m = date("Y-m", $calendar->prevMonth(true));
$next_m = date("Y-m", $calendar->nextMonth(true));
?>
##次の月・前の月のリンクを出力
<table>
<tr>
<td><a href="<?= sprintf($ymdlink, $prev_m) ?>"><< 前</a></td>
<td><?= date("Y/m", $calendar->thisMonth(true)) ?></td>
<td><a href="<?= sprintf($ymdlink, $next_m) ?>">次 >></a></td>
</tr>
</table>
##カレンダーをテーブル形式にて出力
<table border="1">
<tr>
<td>日</td>
<td>月</td>
<td>火</td>
<td>水</td>
<td>木</td>
<td>金</td>
<td>土</td>
</tr>
<?php
while ($days = $calendar->fetch()) {
$days->build();
print("<tr>\n");
while ($day = $days->fetch()) {
// 日付の出力
if ($day->isEmpty()) {
##<td>と</td>の間の全角スペースに注意!
print("<td> </td>");
}
else {
print("<td>" . $day->thisDay() . "</td>\n");
}
}
print("</tr>\n");
}
?>
</table>
</body>
</html>
うおお!簡単にできてしまった!
私は2か月くらい前に、お手製でカレンダーを作成しました。
こんな簡単にできるのであれば、PEARでやればよかった(T_T)
まさに「知らぬは損」って感じです。(痛感)
■参考 PEAR::Calendarマニュアル
http://www.go-pear.org/manual/ja/html/package.datetime.calendar.intro-purpose.html
WEB上で動作するスケジューラーなどを導入したいなどありましたら、
是非一度、弊社にご相談ください。
弊社はレンタルサーバー事業も扱っておりますので
サーバー〜システムまでの完全サポートが可能ですよ(^O^)/
今ならもれなく、財布に入れておくとお金が貯まると
言われている、「たなかのぬけがら」が付いてきますので
2度とないチャンスになっております。
以上、たなかでした(^O^)/