PHP简单日历实现方法

时间:2021-09-22 12:12:35

本文实例讲述了PHP简单日历实现方法。分享给大家供大家参考,具体如下:

运行效果截图如下:

PHP简单日历实现方法

具体代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
/*
 * Created on 2016-7-20
 */
SimCalendar('2016-08');//显示8月份日历
function SimCalendar($date)
{
  /**
   * 简单日历输出,本函数需要cal_days_in_month的支持
   * @param $date Y-m 要输出的日期
   */
  echo '<table border="1">
  <thead>
    <tr>
      <th>日</th>
      <th>一</th>
      <th>二</th>
      <th>三</th>
      <th>四</th>
      <th>五</th>
      <th>六</th>
    </tr>
  </thead>
  <tbody>';
    $date_array = explode('-', $date);
    $start_week = 0;//从星期天开始为0
    $month = cal_days_in_month(CAL_GREGORIAN, $date_array[1], $date_array[0]);//当月的天数
    $wstar = date('w', strtotime($date . '-01'));//当月从星期几天始
    $rows = ceil(($wstar + $month) / 7);//总行数
    $mday = 1;//第几天
    for ($i = 0; $i < $rows; $i++) {
      echo '<tr>';
      for ($d = 0; $d < 7; $d++) {
        $nowday = 7 * $i + $d + $start_week;
        if ($nowday >= $wstar && $mday <= $month) {
          $temp = date('d', strtotime($date . '-' . $mday));
          echo '<td>'.$temp . '</td>';
          $mday++;
        } else {
          echo '<td>&nbsp;</td>';
        }
      }
      echo '</tr>';
    }
  echo '</tbody>
</table>';
}
?>

希望本文所述对大家PHP程序设计有所帮助。