用PHP实现日历类的编写,供大家参考,具体内容如下
calendar.class.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
<?php /* * 创建一个日历类 * * */ //修改默认时区 date_default_timezone_set( "PRC" ); class Calendar { private $year ; private $month ; private $day ; //当月总天数 private $first_week ; //每月的第一天是星期几 //构造函数 function __construct() { $this ->year = isset( $_GET [ 'year' ])? $_GET [ 'year' ]: date ( "Y" ); $this ->month = isset( $_GET [ "month" ])? $_GET [ "month" ]: date ( "m" ); $this ->first_week = date ( "w" , mktime (0, 0 ,0, $this ->month, 1, $this ->year)); $this ->day = date ( "t" , mktime (0, 0 ,0, $this ->month, 1, $this ->year)); } function showCalendar() { // echo $this->year."年".$this->month."月".$this->first_week."天".$this->day; echo "<table align='center'>" ; //用表格输出 $this ->chageDate( "index.php" ); //用于用户调整年月份 $this ->weekList(); //显示星期 $this ->dayList(); //显示天数 echo "</table>" ; } //1、显示星期 private function weekList() { $week = array ( "日" , "一" , "二" , "三" , "四" , "五" , "六" ); echo "<tr>" ; for ( $i = 0; $i < count ( $week ); $i ++) { echo "<th>" . $week [ $i ]. "</th>" ; } echo "</tr>" ; } //2.显示天数 private function dayList() { $color = "#2ca50c" ; echo "<tr>" ; for ( $i = 0; $i < $this ->first_week; $i ++) { //输出空格,弥补当前月空缺部分 echo "<td bgcolor='#2ca50c'> </td>" ; } for ( $k = 1; $i <= $this ->day; $k ++) { $i ++; if ( $k == date ( "d" )) echo "<td id='nowd'>" . $k . "</td>" ; //是今天,加效果 else echo "<td bgcolor=$color>" . $k . "</td>" ; if ( $i % 7 == 0) { echo "</tr><tr>" ; //每7天一次换行 if ( $i % 2 == 0) $color = "#2ca50c" ; else $color = "#9ddb27" ; //实现各行换色的效果 } } while ( $i % 7 != 0) { //将剩余的空格补完 echo "<td bgcolor='#2ca50c'> </td>" ; $i ++; } echo "</tr>" ; } //3、用于用户调整天数 private function chageDate( $url = "index.php" ) { echo "<tr>" ; echo "<caption><h1>" . $this ->year. "年" . $this ->month. "月</h1></caption>" ; echo "</tr>" ; echo "<tr>" ; echo "<td>" . "<a href='?" . $this ->prevYear( $this ->year, $this ->month). "'>" . "<" . "</a>" ; echo "<td>" . "<a href='?" . $this ->prevMonth( $this ->year, $this ->month). "'>" . "<<" . "</a>" ; echo "<td colspan='3'>" ; echo '<select οnchange="window.location=\'' . $url . '?year=\'+this.options[selectedIndex].value+\'&month=' . $this ->month. '\'">' ; for ( $year = 2038; $year >= 1970; $year --) { $selected = ( $year == $this ->year)? "selected" : "" ; echo '<option ' . $selected . ' value="' . $year . '">' . $year . '</option>' ; //echo '<option '.$selected.' value="'.$year.'">'.$year.'</option>'; } echo "</select>" ; echo '<select name="month" οnchange="window.location=\'' . $url . '?year=' . $this ->year. '&month=\'+this.options[selectedIndex].value">' ; for ( $month =1; $month <= 12; $month ++){ $selected1 = ( $month == $this ->month) ? "selected" : "" ; echo '<option ' . $selected1 . ' value="' . $month . '">' . $month . '</option>' ; } echo '</select>' ; echo "</td>" ; echo "<td>" . "<a href='?" . $this ->nextMonth( $this ->year, $this ->month). "'>" . ">>" . "</a>" ; echo "<td>" . "<a href='?" . $this ->nextYear( $this ->year, $this ->month). "'>" . ">" . "</a>" ; echo "</tr>" ; } private function prevYear( $year , $month ) { //获取上一年的数据 $year --; if ( $year < 1970) $year = 1970; return "year={$year}&month={$month}" ; } private function prevMonth( $year , $month ) { if ( $month == 1) { $year --; if ( $year < 1970) $year = 1970; $month = 12; } else $month --; return "year={$year}&month={$month}" ; } private function nextYear( $year , $month ) { //获取上一年的数据 $year ++; if ( $year > 2038) $year = 2038; return "year={$year}&month={$month}" ; } private function nextMonth( $year , $month ) { if ( $month == 12) { $year ++; if ( $year > 2038) $year = 2038; $month = 1; } else $month ++; return "year={$year}&month={$month}" ; } } |
主页 index.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
49
50
51
52
53
|
<!doctype html> < html > < head > < meta charset = "utf-8" > < title >日历显示</ title > < style > table { border:1px solid #050; margin: 100px auto; } th { width: 30px; background-color: #0CC; color: #fff; height: 30px; font-size: 20px; } #nowd { color: yellow; background: #F00; } td { width: 30px; text-align: center; height: 25px; color: #fff; } a { display: block; width: 35px; height: 35px; background: #0F9; text-decoration: none; text-align: center; line-height: 35px; } a:hover { background: #CF0; color: #fff; font-size: 20px; } </ style > </ head > < body > <? php include "calendar.class.php"; $ ca = new Calendar(); $ca->showCalendar(); ?> </ body > </ html > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/shofe11/article/details/37594187