本期本博主将讲述两种利用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的前端世界两位大神
未经允许不得转发!!!
时间: 2024-10-20 12:46:28