所属分类:PHP实例-函数/算法
核心代码展示:
// 1. 获取日期信息年和月(默认为当前的年和当前月)
$year = !empty($_GET["y"])?$_GET['y']:date("Y"); //echo $year; echo "<hr>";
$mon = !empty($_GET["m"])?$_GET["m"]:date("m"); //echo $mon;echo "<hr>";
// 2、计算出当前月有多少天和本月1号是星期几
$day = date("t",mktime(0,0,0,$mon,1,$year));//获取对应月的天数
$w = date("w",mktime(0,0,0,$mon,1,$year)); //获取当前月中1号是星期几
// 3. 输出日期的头部信息(标题和表头)
echo "<center>";
echo "<h1>{$year}年{$mon}月</h1>";
echo "<table width=\"600\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\">";
echo "<tr>";
echo "<th style='color:#ff0000'>星期日</th>";
echo "<th>星期一</th>";
echo "<th>星期二</th>";
echo "<th>星期三</th>";
echo "<th>星期四</th>";
echo "<th>星期五</th>";
echo "<th style='color:#008000'>星期六</th>";
echo "</tr>";
// 4、循环遍历输出日期信息
$dd=1; //定义一个循环的天数
while($dd<=$day){
echo "<tr>";
//输出一周的信息
for($i=0;$i<7;$i++){
//当还没有到该输出日期的时候,或已经日期溢出时,输出的都是空单元格
if(($w>$i && $dd==1) || $dd>$day){
echo "<td title=\"\"> </td>";
}else{
$time = $year.'-'.$mon.'-'.$dd;
echo "<td title=\"{$time}\">{$dd}</td>";
$dd++;
}
/*
//若没有输出完日期dd信息
if($dd<=$day && ($w<=$i ||$dd!=1)){
echo "<td>{$dd}</td>";
$dd++;
}else{
echo "<td> </td>";
}
*/
}
echo "</tr>";
}
echo "</table>";
// 5、 输出上一月和下一月的超级链接
//处理上一月和下一月的信息
$prey=$nexty=$year;//年
$prem=$nextm=$mon;//月
if($prem<=1){
$prem=12;
$prey--;
}else{
$prem--;
}
if($nextm>=12){
$nextm = 1;
$nexty++;
}else{
$nextm++;
}
echo "<h3><a href='index.php?y={$prey}&m={$prem}'>上一月</a> ";
echo "<a href='index.php?y={$nexty}&m={$nextm}'>下一月</a></h3>";
echo "</center>";