$selectedDay = date( @#d@#);
$selectedMonth = date( @#m@#);
$selectedYear = date( @#Y@#);
//获取当月第一天是数值型星期几
$firstday = date( @#w@#,mktime(0,0,0,$selectedMonth,1,$selectedYear));
//找出本月最后一天
$lastday = 31;
do {
$monthOrig = date( @#m@#,mktime(0,0,0,$selectedMonth,1,$selectedYear));
$monthTest = date( @#m@#,mktime(0,0,0,$selectedMonth,$lastday,$selectedYear));
if ($monthTest != $monthOrig) { $lastday -= 1; }
} while ($monthTest != $monthOrig);
//获取当月对应的英文名
$monthName = date( @#F@#,mktime(0,0,0,$selectedMonth,1,$selectedYear));
//显示日历表头
$days = array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
$dayRow = 0;
print( "<table bgcolor=\"#bbFFFF\">");
print( "<caption valign=\"center\"><b>$monthName $selectedYear</b></caption>");
print( "<tr>\n");
for($i=0; $i<=6; $i++) {
print( "<td width=10%>$days[$i]</td>\n");
}
print( "</tr>\n");
print( "<tr>\n");
//空出当月第一天前面的空位
while($dayRow < $firstday) {
print( "<td><!-- This day in last month --></td>");
$dayRow += 1;
}
$day = 0;
while($day < $lastday) {
//下面的判断语句用于每显示7个时间位置转换到下一行
if(($dayRow % 7) == 0) {
print( "</tr>\n<tr>\n");
}
$adjusted_day = $day+1;
//当天的日期用红色显示
if($adjusted_day==$selectedDay){
echo "<td><font color=#ff0000>$adjusted_day</font></td>";
}
else{echo "<td>$adjusted_day</td>";}
$day += 1;
$dayRow += 1;
}
print( "\n</tr>\n</table>");
?>
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/