PHP 简单日历功能的实现
1、这是一个简单的 php 例子
2、这个例子的功能是,实现一个简单的日历显示功能。
3、该函数的作用是:输入指定的 年、月、日时,输出当前月的日历,并在输入的指定 日期 中,突出显示。
具体的代码实现如下:
1 <?php 2 header("Content-Type: text/html;charset=utf-8"); 3 4 date_default_timezone_set("PRC"); 5 6 /* 7 * 日历函数 8 */ 9 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 */ 26 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)); 31 32 //2、输出基本的日历的框架 33 echo "<table border = '0' style = 'text-align:center; width: 800px;' >"; 34 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>"; 44 45 //3、判断当前月的第一天,是周几 46 $first_day_week = intval(date('w', $unix_time)); 47 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 } 59 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++; 68 69 if($i % 7 == 0){ 70 echo "</tr><tr>"; 71 } 72 } 73 74 //4.3、所有日期都循环后,判断是否到了表格末尾,如果没到,用空格填充 75 while ($i % 7 != 0) { 76 $i++; 77 echo "<td> </td>"; 78 } 79 80 echo "</tr>"; 81 82 echo "</table>"; 83 } 84 85 calendar(2015, 6, 13); 86 ?>
简易的页面显示为: