1、这是一个简单的 php 例子
2、这个例子的功能是,实现一个简单的日历显示功能。
3、该函数的作用是:输入指定的 年、月、日时,输出当前月的日历,并在输入的指定 日期 中,突出显示。
具体的代码实现如下:
1 <?php
2 header("Content-Type: text/html;charset=utf-8");
4 date_default_timezone_set("PRC");
6 /*
7 * 日历函数
8 */
10 /**
11 * 输出当前年、月的日历
12 * 2015年6月13日
13 * @author gaoqing
14 * @param int $year 年
15 * @param int $month 月
16 * @param int $day 当前日期
17 * @return void 空
18 */
19 function calendar($year, $month, $day){
20 /*
21 * 1、判断当前年、月 有多少天
22 * 2、输出基本的日历的框架
23 * 3、判断当前月的第一天,是周几
24 * 4、循环所有的天数,填满日历
25 */
27 //1、判断当前年、月 有多少天
28 $unix_time = mktime(0, 0, 0, $month, 1, $year);
29 //$mont_day = cal_days_in_month(CAL_GREGORIAN, $month, $year);
30 $mont_day = intval(date('t', $unix_time));
32 //2、输出基本的日历的框架
33 echo "<table border = '0' style = 'text-align:center; width: 800px;' >";
35 echo "<tr>";
36 echo "<th>星期日</th>";
37 echo "<th>星期一</th>";
38 echo "<th>星期二</th>";
39 echo "<th>星期三</th>";
40 echo "<th>星期四</th>";
41 echo "<th>星期五</th>";
42 echo "<th>星期六</th>";
43 echo "</tr>";
45 //3、判断当前月的第一天,是周几
46 $first_day_week = intval(date('w', $unix_time));
48 /*
49 * 4、循环所有的天数,填满日历
50 * 4.1、首先填充第一行,根据第一天的星期数,填充空白
51 * 4.2、依次的循环日期数,当 $i % 7 时,说明是下一个星期,需要换行
52 * 4.3、所有日期都循环后,判断是否到了表格末尾,如果没到,用空格填充
53 */
54 echo "<tr>";
55 //4.1、首先填充第一行,根据第一天的星期数,填充空白
56 for ($i = 0; $i < $first_day_week; $i++){
57 echo "<td> </td>";
58 }
60 //4.2、依次的循环日期数,当 $i % 7 时,说明是下一个星期,需要换行
61 for ($j = 1; $j <= $mont_day; $j++){
62 if ($j == $day) {
63 echo "<td style = 'background: red;' >{$j}</td>";
64 }else {
65 echo "<td>{$j}</td>";
66 }
67 $i++;
69 if($i % 7 == 0){
70 echo "</tr><tr>";
71 }
72 }
74 //4.3、所有日期都循环后,判断是否到了表格末尾,如果没到,用空格填充
75 while ($i % 7 != 0) {
76 $i++;
77 echo "<td> </td>";
78 }
80 echo "</tr>";
82 echo "</table>";
83 }
85 calendar(2015, 6, 13);
简易的页面显示为: