简单的PHP日历算法

来源:互联网 发布:php 高端写法 编辑:程序博客网 时间:2024/05/19 09:12
<?phpif (function_exists('date_default_timezone_set')) {    date_default_timezone_set('Asia/Chongqing');}$date = isset($_GET['date']) ? $_GET['date'] : date('Y-m-d');$date = getdate(strtotime($date));$end = getdate(mktime(0, 0, 0, $date['mon'] + 1, 1, $date['year']) - 1);$start = getdate(mktime(0, 0, 0, $date['mon'], 1, $date['year']));$pre = date('Y-m-d', $start[0] - 1);$next = date('Y-m-d', $end[0] + 86400);$html = '<table border="1">';$html .= '<tr>';$html .= '<td><a href="' . $PHP_SELF . '?date=' . $pre . '">-</a></td>';$html .= '<td colspan="5">' . $date['year'] . ';' . $date['month'] . '</td>';$html .= '<td><a href="' . $PHP_SELF . '?date=' . $next . '">+</a></td>';$html .= '</tr>';$arr_tpl = array(0 => '', 1 => '', 2 => '', 3 => '', 4 => '', 5 => '', 6 => '');$date_arr = array();$j = 0;for ($i = 0; $i < $end['mday']; $i++) {    if (!isset($date_arr[$j])) {        $date_arr[$j] = $arr_tpl;    }    $date_arr[$j][($i+$start['wday'])%7] = $i+1;    if ($date_arr[$j][6]) {        $j++;    }}foreach ($date_arr as $value) {    $html .= '<tr>';    foreach ($value as $v) {        if ($v) {            if ($v == $date['mday']) {                $html .= '<td><b>' . $v . '</b></td>';            } else {                $html .= '<td>' . $v . '</td>';            }        } else {            $html .= '<td> </td>';        }    }    $html .= '</tr>';}$html .= '</table>';echo $html;?>

原创粉丝点击