[PHP]カレンダーを表示する

指定した月のカレンダーを表示してみます。

<?php
$year  = 2012;
$month = 8;

$datetime = new DateTime();
$datetime->setDate($year, $month, 1);
$lastday = (int)$datetime->format('t');
$w = (int)$datetime->format('w');
?>
<table>
<tr>
  <th>日</th>
  <th>月</th>
  <th>火</th>
  <th>水</th>
  <th>木</th>
  <th>金</th>
  <th>土</th>
</tr>
<tr>
<?php
//空白で埋める
for($i=0;$i < $w;$i++){
	echo "<td>-</td>\n";
}

$day = 1;
for($cell=$w;$cell < 35;$cell++){
	if($cell % 7 == 0){
		echo "</tr>\n<tr>\n";
	}

	if($day <= $lastday){
		echo "<td>{$day}</td>\n";
	} else {
		echo "<td>-</td>\n";
	}
	$day++;
}
?>
</tr>
</table>

結果(例):

Calender