php實現簡單的日歷類

ded3b 9年前發布 | 1K 次閱讀 PHP

<?php
class calendar{
    private $year;
    private $month;
    private $day_week;

function __construct(){
    $this->year=isset($_GET['year']) ? $_GET['year'] : date("Y");
    $this->month=isset($_GET['month']) ? $_GET['month'] : date("m");
    $this->day_week=date("w", mktime(0, 0, 0, $this->month, 1, $this->year));
}

private function xianDate(){
    echo "<tr>";
    echo "<td><a href='".$this->nextyear($this->year, $this->month)."'>"."<<<"."</a></td>";
    echo "<td><a href='".$this->nextmonth($this->month, $this->year)."'>"."<<"."</td>";
    echo "<td colspan='3'>".$this->year."年".$this->month."月</td>";
    echo "<td><a href='".$this->aftermonth($this->month, $this->year)."'>".">>"."</td>";
    echo "<td><a href='".$this->afteryear($this->year, $this->month)."'>".">>>"."</a></td>";
    echo "</tr>";
}


private function weeks(){
    $weeks=array("日", "一", "二", "三", "四", "五", "六");
    echo "<tr>";
    foreach($weeks as $value){
        echo "<th>".$value."</th>";
    }
    echo "</tr>";
}

private function days(){
    echo "<tr>";
    for($i=0; $i<$this->day_week; $i++){
        echo "<td>&nbsp;</td>";
    }
    for($j=1; $j <= date("t", mktime(0, 0, 0, $this->month, 1, $this->year)); $j++){
        $i++;
        if($j == date("d")){
            echo "<td class='fontb'>".$j."</td>";
        }else{
            echo "<td>".$j."</td>";
        }
        if($i%7 == 0){
            echo "</tr>";
        }
    }
    while($i%7 != 0){
        echo "<td>&nbsp;</td>";
        $i++;
    }
}

private function nextyear($year, $month){
    if($year == 1970){
        $year=1970;
    }else{
        $year--;
    }
    return "?year=".$year."&month=".$month;
}

private function afteryear($year, $month){
    if($year == 2038){
        $year=2038;
    }else{
        $year++;
    }
    return "?year=".$year."&month=".$month;
}

private function nextmonth($month, $year){
    if($month == 1){
        $year--;
        $month=12;
    }else{
        $month--;
    }
    return "?year=".$year."&month=".$month;
}

private function aftermonth($month, $year){
    if($month == 12){
        $year++;
        $month=1;
    }else{
        $month++;
    }
    return "?year=".$year."&month=".$month;
}


public function out(){
    echo "<table align='center'>";
    $this->xianDate();
    $this->weeks();
    $this->days();
    echo "</table>";
}

}

?> </pre>

 本文由用戶 ded3b 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!