▼ ソースコード {$year}年{$month}月 EOT; $i = 0; foreach ($_cal as $d) { if (++$i % 7 == 1) $cal .= ""; if (empty($d)) { $cal .= ' '; } elseif ($i % 7 == 1) { // 日曜なら赤字に $cal .= "{$d}"; } elseif ($i % 7 == 0) { // 土曜なら青字に $cal .= "{$d}"; } else { $cal .= "{$d}"; } if ($i % 7 == 0) $cal .= "\n"; } $cal .= "\n"; return $cal; } // カレンダー用の日付セットを配列で返す function _cal($year, $month) { // 年月から月初め(ついたち)の曜日を求める $week = date("w", mktime(0, 0, 0, $month, 1, $year)); // 月初めが日曜じゃない(途中曜日)分をヌル値で埋める for ($i=$week; $i>0; $i--) $cal[] = null; // 年月からその月の日数を求める $days = date("t", mktime(0, 0, 0, $month, 1, $year)); // その年月の日付を配列にセット foreach (range(1, $days) as $set) $cal[] = $set; // 週の残りがあればヌル値で埋める for ($i=(count($cal)-1)%7; $i<6; $i++) $cal[] = null; return $cal; } ▼ 表示結果 2010年7月 123 45678910 11121314151617 18192021222324 25262728293031
▼ ソースコード
▼ 表示結果