当前位置: 代码迷 >> PHP >> 日历有关问题
  详细解决方案

日历有关问题

热度:150   发布时间:2012-04-06 12:22:24.0
日历问题
2012年02月
星期一 星期二 星期三 星期四 星期五 星期六 星期日
  6 7 8 9 10 11 12
  13 14 15 16 17 18 19



帮忙写写。谢谢

------解决方案--------------------
PHP code
<?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>";
    }
}
$a=new calendar;
$a->out();
?> 
  相关解决方案