カレンダーについて教えてください。
phpでカレンダーを作っているのですが休日を設定したい場合
の方法がわかりません。
for文で日にちを表示させているのですが休日設定の配列の値を
どのように参照すればいいかで悩んでおります。
// 現在の日付を取得
$year = date("Y");
$month = date("n");
$today = date("j");
// 休日を設定
$holyday = array('1', '5', '12', '28');
// カレンダー始まり
echo "<table width='200' height='182' border='0'><tr><td valign='top'>";
echo "<table border ='0' bgcolor='#cccccc' cellspacing='1' cellpadding='3' width='170'><tr>\n";
echo "<td colspan='7' bgcolor='white' align='center' style='font-size:12px;font-weight:bold;color:#6666ff'>";
echo $year . "年" . $month . "月</td><tr>";
// 曜日表示部分
$weekday = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
for ($i = 0 ; $i < 7 ; $i++) {
if ($i == 0 or $i == 6) {
echo "<td class='head_" . $i . "'>";
} else {
echo "<td class='head'>";
}
echo $weekday[$i] . "</td>\n";
}
echo "</tr>\n";
// 日数と曜日の計算
$days = cal_days_in_month (CAL_GREGORIAN, $month, $year);
$week_start = jddayofweek (cal_to_jd(CAL_GREGORIAN, $month,1, $year) , 0);
// 日付が始まる前の空白
for ($dot1 = 0 ; $dot1 < $week_start ; $dot1++) {
echo "<td align='center' class='dot'></td>\n";
}
// 日付表示部分
for ($day = 1 ; $day <= $days ; $day++) {
if (($day+$week_start)%7 == 1) {
// 日曜日
echo "<tr>\n<td class='sun'>$day</td>\n";
} else if (($day+$week_start)%7 == 0) {
// 土曜日
echo "<td class='sat'>$day</td>\n</tr>\n";
} else if ($day == $today) {
// 今日
echo "<td class = 'today'>$day</td>\n";
// ここで休日を表示させるのですが方法がわかりません。
} else if ($day == $holyday[0]) {
// 休日
echo "<td class = 'holyday'>$day</td>\n";
} else {
// 平日
echo "<td class='othr'>$day</td>\n";
}
}
// 最終日後の空欄の表示
$wend = 35 - ($days + $week_start);
if ($wend < 0) {
$wend += 7;
}
if ($wend == 7) {
echo '';
} else if ($wend != 0) {
for ($dot2 =0 ; $dot2 < $wend ;$dot2++) {
echo "<td align='center' class='dot'></td>\n";
}
}
// カレンダー終り
echo "</tr></table>\n";
echo "</td></tr></table>\n";