【PHP】製做日曆

本期本博主將講述兩種利用PHP製做日曆的方法,因爲PHP日期函數的便捷性,使得咱們製做日曆這一過程變得至關簡單前端

問題描述:函數

一、取到當前日期,並着色顯示;
二、根據當前日期,判斷本月有多少天,一號是周幾;
三、完成本月日曆顯示spa

方法一,自動取到當前日期,代碼以下3d

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);

運行結果以下code

方法二,指定當前日期,代碼以下blog

//此處爲時間輸入
 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);

運行結果以下圖get

效果完美,然後在前二者的基礎上稍加改進就能夠獲得萬年曆,PHP功能就是如此強大io

代碼實現感謝@浩神@Q的前端世界兩位大神table

未經容許不得轉發!!!function

相關文章
相關標籤/搜索