本文实例讲述了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
|
<?php
/*
* php 输出日历程序
*/
header( "Content-type: text/html;charset=utf-8" );
$year =(!isset( $_GET [ 'year' ])|| $_GET [ 'year' ]== "" )? date ( "Y" ): $_GET [ 'year' ];
$month =(!isset( $_GET [ 'month' ])|| $_GET [ 'month' ]== "" )? date ( "n" ): $_GET [ 'month' ];
$curUrl = $_SERVER [ 'PHP_SELF' ];
if ( $year <1971){
echo "出错!" ;
echo "<BR>" ;
echo "<a href=" , $curUrl , ">Back</a>" ;
exit ();
}
?>
<table width= "200" border= "1" cellspacing= "0" cellpadding= "0" bordercolor= "#E7E7E7" style= "font-size:12px;" align= "center" >
<tr align= "center" ><td colspan= "2" >
<?php
//<-------当月份超出1至12时的处理;开始------->
if ( $month <1){
$month =12;
$year -=1;
}
if ( $month >12){
$month =1;
$year +=1;
}
//<-------当月份超出1至12时的处理;结束------->
//<---------上一年,下一年,上月,下月的连接处理及输出;开始--------->
echo "<a href=" , $curUrl , "?year=" .( $year -1). "&month=" . $month . "><<</a>年<a href=" , $curUrl , "?year=" .( $year +1). "&month=" . $month . ">>></a>" ;
?>
</td><td colspan= "3" ><?php echo $year . "年" . $month . "月" ;?>
</td><td colspan= "2" >
<?php
echo "<a href=" , $curUrl , "?month=" .( $month -1). "&year=" . $year . "><<</a>月<a href=" , $curUrl , "?month=" .( $month +1). "&year=" . $year . ">>></a>" ;
//<--------上一年,下一年,上月,下月的连接处理及输出;结束--------->
?></td></tr>
<tr align=center><td><font color= "red" >日</font></td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr><tr>
<?php
$d = date ( "d" );
$FirstDay = date ( "w" , mktime (0,0,0, $month ,1, $year )); //取得任何一个月的一号是星期几,用于计算一号是由表格的第几格开始
$bgtoday = date ( "d" );
function font_color( $month , $today , $year ){ //用于计算星期天的字体颜色
$sunday = date ( "w" , mktime (0,0,0, $month , $today , $year ));
if ( $sunday == "0" ){
$FontColor = "red" ;
} else {
$FontColor = "black" ;
}
return $FontColor ;
}
function bgcolor( $month , $bgtoday , $today_i , $year ){ //用于计算当日的背景颜色
$show_today = date ( "d" , mktime (0,0,0, $month , $today_i , $year ));
$sys_today = date ( "d" , mktime (0,0,0, $month , $bgtoday , $year ));
if ( $show_today == $sys_today ){
$bgcolor = "bgcolor=#6699FF" ;
} else {
$bgcolor = "" ;
}
return $bgcolor ;
}
function font_style( $month , $today , $year ){ //用于计算星期天的字体风格
$sunday = date ( "w" , mktime (0,0,0, $month , $today , $year ));
if ( $sunday == "0" ){
$FontStyle = "<strong>" ;
} else {
$FontStyle = "" ;
}
return $FontStyle ;
}
for ( $i =0; $i <= $FirstDay ; $i ++){ //此for用于输出某个月的一号位置
for ( $i ; $i < $FirstDay ; $i ++){
echo "<td align=center> </td>\n" ;
}
if ( $i == $FirstDay ){
echo "<td align=center " .bgcolor( $month , $bgtoday ,1, $year ). "><font color=" .font_color( $month ,1, $year ). ">" .font_style( $month ,1, $year ). "1</font></td>\n" ;
if ( $FirstDay ==6){ //判断1号是否星期六
echo "</tr>" ;
}
}
}
$countMonth = date ( "t" , mktime (0,0,0, $month ,1, $year )); //某月的总天数
for ( $i =2; $i <= $countMonth ; $i ++){ //输出由1号定位,随后2号直至月尾的所有号数
echo "<td align=center " .bgcolor( $month , $bgtoday , $i , $year ). "><font color=" .font_color( $month , $i , $year ). ">" .font_style( $month , $i , $year ). "$i</font></td>\n" ;
if ( date ( "w" , mktime (0,0,0, $month , $i , $year ))==6){ //判断该日是否星期六
echo "</tr>\n" ;
}
}
?>
</table>
|
php输出的日历效果如下图:
希望本文对大家学习php程序设计有所帮助。