<html>
<head>
<title>日历测试</title>
<meta charset="utf-8">
</head>
<body>
<?php
// 当 $month=0的时候,显示全年的日历
function get_data($year , $month )
{
$ans = array();
// 或者时间截
$time = mktime(0,0,0,$month,1,$year);
// 计算这个月有几天
$n_days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
// $time 是星期几
$week = $tmp = date("w",$time);
while($tmp--) {
array_push($ans, 0);
}
for($tmp = 1; $tmp <= $n_days; $tmp++) {
array_push($ans, $tmp);
}
$ans = array_chunk($ans, 7);
return $ans;
}
function show_year($year)
{
$html = "";
for($i = 1; $i <= 12; $i++) {
$html .= "<div>";
$html .= show($year, $i);
$html .= "</div>";
}
return $html;
}
// show($year = date("Y"), $month = date("n"))
function show($year = 0, $month = 0)
{
if(0 === $year || 0 === $month || $year <1900 || $year >2100 || $month <= 0 || $month >12) {
$year = date("Y");
$month = date("n");
return show_year($year);
}
$ans = get_data($year, $month);
$html = "";
$html .= "
<p> 这是 $year 年 $month 月的日历</p>
<table border=1>
<tr> <td>星期日</td><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td> </tr>
";
foreach ($ans as $vals) {
$html .= "<tr>";
$tmp = "";
foreach ($vals as $val) {
if(0 === $val)
$tmp .= "<td> </td>";
else
$tmp .= "<td> $val </td>";
}
$html .= $tmp;
$html .= "</tr>";
}
$html .= "</table>";
return $html;
}
echo show(2013);
?>
</body>
</html>