本期本博主將講述兩種利用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的前端世界兩位大神
未經允許不得轉發!!!
