下面是一个简单的php日历算法,希望对大家有所帮助
if (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="http://www.php1.cn/"> $html .= '<td colspan="5">' . $date['year'] . ';' . $date['month'] . '</td>'; $html .= '<td><a href="http://www.php1.cn/"> $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;