本期本博主将讲述两种利用PHP制作日历的方法,由于PHP日期函数的便捷性,使得我们制作日历这一过程变得相当简单
问题描述:
1、取到当前日期,并着色显示;
2、根据当前日期,判断本月有多少天,一号是周几;
3、完成本月日历显示
方法一,自动取到当前日期,代码如下
date_default_timezone_set("PRC");
$time = getdate();
$mday = $time["mday"];
$mon = $time["mon"];
$year = $time["year"];
if($mon==4||$mon==6||$mon==9||$mon==11){
$day = 30;
}elseif($mon==2){
if(($year%4==0&&$year%100!=0)||$year%400==0){
$day = 29;
}else{
$day = 28;
}
}else{
$day = 31;
}
$w = getdate(mktime(0,0,0,$mon,1,$year))["wday"];
$date = function($day,$w){
echo "<table border=‘1‘>";
echo "<tr><th>星期日</th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th><th>星期六</th></tr>";
$arr = array();
for($i=1;$i<=$day;$i++){
array_push($arr,$i);
}
if($w>=1&&$w<=6){
for($m=1;$m<=$w;$m++){
array_unshift($arr,"");
}
}
$n=0;
for($j=1;$j<=count($arr);$j++){
$n++;
if($n==1) echo "<tr>";
global $mday;
if($mday==$arr[$j-1]){
echo "<td width=‘80px‘ style=‘background-color: greenyellow;‘>".$arr[$j-1]."</td>";
}else{
echo "<td width=‘80px‘>".$arr[$j-1]."</td>";
}
if($n==7){
echo "</tr>";
$n=0;
}
}
if($n!=7)echo "</tr>";
echo "</table>";
};
$date($day,$w);
运行结果如下

方法二,指定当前日期,代码如下
//此处为时间输入 echo " 当前时间戳为:"; echo $today=mktime(9,34,56,06,02,2017); echo "</br>"; echo "</br>"; $r=date("L",$today);//润平年 $w=date("N",$today);//星期 $m=date("n",$today);//月份 $d=date("j",$today); if($m==1||$m==3||$m==5||$m==7||$m==8||$m==10||$m==12){ $days=31; }elseif($m==4||$m==6||$m==9||$m==11){ $days=30; }elseif($m==2){ if($r==1){ $days=29; }else{ $days=28; } }else{ echo "日期有误!!!"; } $day=1; $week=0; $count=($days+$w)/7; echo "<table border=‘1‘ width=‘500‘>"; echo <<<th <tr style="background-color:#ccc;"> <th style="color:red;">星期天</th> <th>星期一</th> <th>星期二</th> <th>星期三</th> <th>星期四</th> <th>星期五</th> <th style="color:green;">星期六</th> </tr> th; for($i=0;$i<=$count;$i++){ echo "<tr>"; for($j=0;$j<7;$j++){ if(($week<$w)||($day>$days)){ echo "<td></td>"; $week++; }else{ if($day==$d){ echo "<td bgcolor=‘green‘;>{$day}</td>"; $day++; }else{ echo "<td>{$day}</td>"; $day++; } } } if($day>$days){ break; } echo "</tr>"; } echo "</table>"; echo "</br>"; echo " 当前时间为:"; echo date("Y-m-d H:i:s 星期N a",$today);
运行结果如下图

效果完美,而后在前两者的基础上稍加改进就可以得到万年历,PHP功能就是如此强大
代码实现感谢@浩神@Q的前端世界两位大神
未经允许不得转发!!!
原文:http://www.cnblogs.com/huixin520/p/6943136.html