本文实例讲述了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程序设计有所帮助。