php 一个简单的日历

<html>
    <head>
        <title>日历测试</title>
        <meta charset="utf-8">
    </head>
    <body>
        <?php
            // 当 $month=0的时候,显示全年的日历
            function get_data($year , $month ) 
            {
                $ans = array();
                // 或者时间截
                $time = mktime(0,0,0,$month,1,$year);
                // 计算这个月有几天
                $n_days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
                
                // $time 是星期几
                $week = $tmp = date("w",$time);
                while($tmp--) {
                    array_push($ans, 0);
                }
                for($tmp = 1; $tmp <= $n_days; $tmp++) {
                    array_push($ans, $tmp);
                }
                $ans = array_chunk($ans, 7);
                return $ans;
            } 
            
            function show_year($year) 
            {
                $html = "";
                for($i = 1; $i <= 12; $i++) {
                    $html .= "<div>";
                    
                    $html .= show($year, $i);
                    $html .= "</div>";
                }
                return $html;
            }
            // show($year = date("Y"), $month = date("n"))
            function show($year = 0, $month = 0) 
            {
                if(0 === $year || 0 === $month || $year <1900 || $year >2100 || $month <= 0 || $month >12) {
                    $year = date("Y");
                    $month = date("n");
                    return show_year($year);
                    
                }
                
                $ans = get_data($year, $month);

                
                $html = "";
                $html .= "
                    <p> 这是 $year$month 月的日历</p>
                    <table border=1>
                        <tr> <td>星期日</td><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td> </tr>
                    ";
                foreach ($ans as  $vals) {
                    $html .= "<tr>";
                    $tmp = "";

                    foreach ($vals as $val) {
                        if(0 === $val)
                            $tmp .= "<td> &nbsp; </td>";
                        else 
                            $tmp .= "<td> $val </td>";
                    }
                    $html .= $tmp;
                    $html .= "</tr>";
                }
                $html .= "</table>";
                return $html;
            }
            
           echo  show(2013);
        ?>
    </body>
</html>

 

posted @ 2013-04-12 12:07  刘牛德  阅读(196)  评论(0)    收藏  举报