1. 程式人生 > >【PHP】制作日歷

【PHP】制作日歷

break array 輸入 gree for zone 過程 shift ech

本期本博主將講述兩種利用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 "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;當前時間戳為:";    
 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 "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;當前時間為:";
echo date("Y-m-d H:i:s 星期N a",$today);

運行結果如下圖

技術分享

效果完美,而後在前兩者的基礎上稍加改進就可以得到萬年歷,PHP功能就是如此強大

[email protected]@Q的前端世界兩位大神

未經允許不得轉發!!!

【PHP】制作日歷