网站广播 本站提供的源码经过测试,配有前台及后台管理界面演示图,希望对大家有帮助!
简单的PHP日历算法
2010-08-21 10:00:25    【 】   浏览:
/** 
  * 日历 
  * 
  * Copyright(c) 2007 by 陈毅鑫(深空). All rights reserved 
  * To contact the author write to
{@link mailto:[email protected]
  * @author 陈毅鑫(深空) 
  */
 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="' . $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>&nbsp;</td>'; 
         } 
     } 
     $html .= '</tr>'; 
 } 
 $html .= '</table>'; 
 echo $html;  


Tags:简单 PHP 日历 算法
】【打印繁体】【关闭】 【返回顶部
上一篇让PHP跑在Mac OS X中 下一篇Google PageRank PR值在线查询php..

广告推荐

PHP技术文章推荐阅读