简单的日历二

同一个目录下两个文件,一个 index.php

一个 cal.php

 

1. cal.php  内容如下

<?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 ($month = 1; $month <= 12; $month++) {
            $html .= "<div>";

            $html .= show($year, $month);
            $html .= "</div>";
        }
        return $html;
    }

    // show($year = date("Y"), $month = date("n"))
    function show($year = 0, $month = 1) {

        $ans = get_data($year, $month);

        $y1 = $year-1;
        $y2 = $year+1;
        $m1 = $month-1;
        $m2 = $month+1;
        $html = "";
        $html .= "
                        <a href='./index.php?year=$y1&month=$month'> <<<< </a> &nbsp;&nbsp;
                        <a href='./index.php?year=$year&month=$m1'> << </a> &nbsp;
                         这是 $year$month 月的日历
                        <a href='./index.php?year=$year&month=$m2'> >> </a>&nbsp;&nbsp;
                        <a href='./index.php?year=$y2&month=$month'> >>>> </a>&nbsp;
                            
                        <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;
    }

?>

2 . index.php

<?php 
    include_once 'cal.php';
    
    if(isset($_GET["year"])) {
        $year = $_GET["year"];
    } else {
        $year = date("y");
    }
    
    if(isset($_GET["month"])) {
        $month = $_GET["month"];
    } else {
        $month = date("n");
    }
?>
<html>
    <head>
        <title>日历测试</title>
        <meta charset="utf-8">
    </head>
    <body>
        <?php
            echo show($year, $month);
        ?>
    </body>
</html>

 

 

 

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