當前位置:首頁 > PHP教程 > php日期 > 列表

簡單實用PHP日歷程序代碼

發布:smiling 來源: PHP粉絲網  添加日期:2015-04-11 17:11:08 瀏覽: 評論:0 

日歷程序代碼我們一般會使用一些js插件來實現了,但是像博客這種日志分類我們會使用php程序來實現,下面php粉絲網就來為你介紹一下吧.

PHP日歷程序,功能都是大眾化的,可以下拉切換年月,上一年下一月下一年上一月,太另類的沒去寫,主要的寫出來了,擴展起來就方便多了,標題為什么要叫精美呢,是因自已感覺界面還過得去,哈哈,讓大家見笑了,不足之處還請指出.

php日歷核心代碼如下:

  1. <?php 
  2. //日歷類 
  3. class calendar { 
  4.     //當前的年 
  5.     private $year
  6.     //當前的月 
  7.     private $month
  8.     //一個月中第一天是星期幾 
  9.     private $start_weekday
  10.     //當前月的天數 
  11.     private $days
  12.     //最大數與最小年數,最大與最小月數 
  13.     private $yearMonth = array(2080, 1900, 12, 1); 
  14.     //構造函數 
  15.     function __construct() { 
  16.         if (isset($_GET['year'])) { 
  17.            $this->year = $_GET['year']; 
  18.         } 
  19.             if (isset($_GET['month'])) { 
  20.             $this->month = $_GET['month']; 
  21.         } 
  22.         $this->pnYm($this->year, $this->month); 
  23.         $this->days = date('t'mktime(0, 0, 0, $this->month, 1, $this->year)); 
  24.         $this->start_weekday = date('w'mktime(0, 0, 0, $this->month, 1, $this->year)); 
  25.         $this->style(); 
  26.     } 
  27.     //輸出 
  28.     private function style() { 
  29.         echo '<table id="calendar">'
  30.         $this->weeklist(); 
  31.         $this->daylist(); 
  32.         echo '<table>'
  33.     } 
  34.     //年月參數判斷 
  35.     private function ymCheck($year$month) { 
  36.         if (!is_numeric($year)) { 
  37.             $year = date('Y'); 
  38.         } 
  39.         if (!is_numeric($month)) { 
  40.             $month = date('m'); 
  41.         } 
  42.         if ($month < $this->yearMonth[3]) { 
  43.             $month = $this->yearMonth[2]; 
  44.             $year -= 1; 
  45.         } 
  46.         if ($month > $this->yearMonth[2]) { 
  47.             $month = $this->yearMonth[3]; 
  48.             $year = intval($year) + 1; 
  49.         } 
  50.         $year = $year < $this->yearMonth[1] ? $this->yearMonth[1] : $year
  51.         $year = $year > $this->yearMonth[0] ? $this->yearMonth[0] : $year
  52.         return array($year$month); 
  53.     } 
  54.     //上一年、下一年、上一月、下一月 
  55.     private function pnYm($year$month) { 
  56.         $ym = $this->ymCheck($year$month); 
  57.         $this->year = $ym[0]; 
  58.         $this->month = $ym[1]; 
  59.     } 
  60.     //weeklist周列表 
  61.     private function weeklist() { 
  62.         $week = array('日','一','二','三','四','五','六'); 
  63.         echo '<tr>'
  64.         foreach ($week as $val) { 
  65.             echo '<th>'.$val.'</th>'
  66.         } 
  67.         echo '</tr>'
  68.     } 
  69.     //daylist天列表 
  70.     private function daylist() { 
  71.         //年月日導航 
  72.         echo '<tr>'
  73.         echo '<td><a title="上一年" href="?year='.($this->year-1).'&month='.$this->month.'"><<</a></td>'
  74.         echo '<td><a title="上一月" href="?year='.$this->year.'&month='.($this->month-1).'"><</a></td>'
  75.         echo '<td colspan="3">'
  76.         echo '<form action="?" method="get" id="form">'
  77.         echo '<select name="year" onchange="formaction()">'
  78.         for ($i = $this->yearMonth[1]; $i <= $this->yearMonth[0]; $i++) { 
  79.              if ($i == $this->year) { 
  80.                    echo '<option value="'.$i.'" selected="selected">'.$i.'年</option>'
  81.              }else { 
  82.                    echo '<option value="'.$i.'">'.$i.'年</option>'
  83.              } 
  84.         } 
  85.         echo '</select>'
  86.         echo '<select name="month" onchange="formaction()">'
  87.         for ($i = $this->yearMonth[3]; $i <= $this->yearMonth[2]; $i++) { 
  88.             if ($i == $this->month) { 
  89.                  echo '<option value="'.$i.'" selected="selected">'.$i.'月</option>';  //開源軟件:phpfensi.com 
  90.             }else { 
  91.                  echo '<option value="'.$i.'">'.$i.'月</option>'
  92.             } 
  93.         } 
  94.        echo '</select></form></td>'
  95.        echo '<td><a title="下一月" href="?year='.$this->year.'&month='.($this->month+1).'">></a></td>'
  96.        echo '<td><a title="下一年" href="?year='.($this->year+1).'&month='.$this->month.'">>></a></td>'
  97.        echo '</tr>'
  98.        echo '<tr>'
  99.        //輸出空格(當前一個月第一天前面要空出來的) 
  100.        for($i = 0; $i < $this->start_weekday; $i++) { 
  101.              echo '<td>&nbsp;</td>'
  102.        } 
  103.        for ($k = 1; $k <= $this->days; $k++) { 
  104.             $i++; 
  105.             if ($k == date('d')) { 
  106.                   echo '<td>'.$k.'</td>'
  107.             }else { 
  108.                   echo '<td>'.$k.'</td>'
  109.             } 
  110.             if ($i % 7 == 0) { 
  111.                  if ($k != $this->days) { 
  112.                         echo '</tr><tr>'
  113.                  } 
  114.             } 
  115.         } 
  116.          echo '</tr>'
  117.     } 
  118. ?> 

html+css代碼如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>PHP日歷程序</title> 
  6. <style> 
  7. #calendar { width:auto; margin:0 auto; margin-top:100px; border:0; border-collapse:collapse; box-shadow:0px 0px 4px #ddd; font-size:12px; text-align:center; font-family:"微軟雅黑"; color:#333; border:solid 1px #c5e2ff; } 
  8. #calendar tr { width:auto; height:34px; line-height:34px; } 
  9. #calendar tr th { width:44px; background:#c5e2ff; } 
  10. #calendar tr td { background:#fff; } 
  11. #calendar tr td.tdbg { background:#c5e2ff; } 
  12. #calendar tr td:hover { background:#FFC; } 
  13. #calendar tr td a { text-decoration:none; color:#f50; font-weight:900; } 
  14. #calendar select { width:auto; border:solid 1px #c5c5c5; padding:2px 0 2px 0; background:#fff; float:left; margin-left:5px; } 
  15. </style> 
  16. <script> 
  17. function formaction() { 
  18.     var form = document.getElementById('form'); 
  19.     form.submit(); 
  20. </script> 
  21. </head> 
  22. <body> 
  23. <?php 
  24. require 'init.php'
  25. $calendar = new calendar(); 
  26. ?> 
  27. </body> 
  28. </html>

Tags: PHP日歷程序 PHP日歷代碼

分享到:

广西快3最大遗漏值统计表