用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 >
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。
原文链接:https://blog.csdn.net/shofe11/article/details/37594187
相关文章
猜你喜欢
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
centos7使用docker部署gitlab-ce-zh应用详解
2025-05-25 57 -
2025-06-04 14
-
2025-05-25 72
-
2025-05-29 72
-
2025-05-27 53
热门评论