自己写的一个用函数实现的日历


1 <style>
2 /* start css for calendar */
3 .calendar
4 {
5 background-color: #FFFFFF;
6 border: 1px solid #003366;
7 }
8 /* first line: years and mouthes */
9 .calendar .title
10 {
11 background-image: url("/theme/monthbg.gif");
12 line-height: 110%;
13 background-color: #D8E2EC;
14 text-align: center;
15 vertical-align: middle;
16 font-family: Geneva, Verdana, Arial, sans-serif;
17 font-size: 15px;
18 font-weight: Bold;
19 color: #252216;
20 }
21 /* second line: weekdays */
22 .calendar .head
23 {
24 background-color: #F5F4D3;
25 font-family: Geneva, Verdana, Arial, sans-serif;
26 font-size: 15px;
27 font-weight: Bold;
28 color: #433D27;
29 }
30 /* all cells */
31 .calendar td
32 {
33 font-family: Geneva, Verdana, Arial, sans-serif;
34 font-size: 10px;
35 line-height: 15pt;
36 text-align: center;
37 vertical-align: middle;
38 width: 25px;
39 }
40 /* workdays */
41 .calendar .weekday
42 {
43 background-color: #e0e0e0;
44 }
45 /* weekends */
46 .calendar .weekend
47 {
48 background-color: #d0d0d0;
49 }
50 /* today */
51 .calendar .today
52 {
53 background-color: #f7bebd;
54 }
55 /* other monthes */
56 .calendar .exmonth
57 {
58 background-color: #eeeeee;
59 }
60 /* all links */
61 .calendar a
62 {
63 text-decoration: none;
64 cursor: hand;
65 }
66 /* end css for calendar */
67 </style>
68 <?php
69 function calendar($time)
70 {
71 global $theme_dir;
72 $start=mktime(0, 0, 0, date('m', $time), 1, date('Y', $time));
73 $start=$start-date('w', $start)*86400; // extent to start of week
74 $end=mktime(0, 0, 0, date('m', $time)+1, 1, date('Y', $time));
75 $end=$end+(7-date('w', $end))*86400; // extent to end of week
76 $sWeekday=array('S','M','T','W','T','F','S');
77 $title=date('M Y', $time);
78 $prevm=mktime(0, 0, 0, date('m', $time)-1, 1, date('Y', $time));
79 $nextm=mktime(0, 0, 0, date('m', $time)+1, 1, date('Y', $time));
80 $prevy=mktime(0, 0, 0, date('m', $time), 1, date('Y', $time)-1);
81 $nexty=mktime(0, 0, 0, date('m', $time), 1, date('Y', $time)+1);
82 $url=$_SERVER['PHP_SELF'].'?time=';
83 $str = '';
84 $str .= <<<END
85 <table class="calendar" cellspacing="1">
86 <tr class="title">
87 <th><a href="{$url}{$prevy}"><img src="{$theme_dir}backward.gif" border="0" alt="last year" /></a></th>
88 <th><a href="{$url}{$prevm}"><img src="{$theme_dir}prev.gif" border="0" alt="last month" /></a></th>
89 <th colspan="3">{$title}</td>
90 <th><a href="{$url}{$nextm}"><img src="{$theme_dir}next.gif" border="0" alt="next month" /></a></th>
91 <th><a href="{$url}{$nexty}"><img src="{$theme_dir}forward.gif" border="0" alt="next year" /></a></th>
92 </tr>
93 <tr class="head">
94 <th>{$sWeekday[0]}</td>
95 <th>{$sWeekday[1]}</td>
96 <th>{$sWeekday[2]}</td>
97 <th>{$sWeekday[3]}</td>
98 <th>{$sWeekday[4]}</td>
99 <th>{$sWeekday[5]}</td>
100 <th>{$sWeekday[6]}</td>
101 </tr>
102 <tr>
103 END;
104 for($stamp=$start;$stamp<$end;$stamp+=86400) // loop through each day, which is 86400 seconds
105 {
106 $weekday=date('w', $stamp);
107 if(date('m', $stamp)!=date('m', $time)) $style='exmonth';
108 else if(date('Y-m-d', $stamp)==date('Y-m-d', $time)) $style='today';
109 else if(date('w', $stamp)==0 || date('w', $stamp)==6) $style='weekend';
110 else $style='weekday';
111 $str.= "/t/t".'<td class="'.$style.'"><a href="'.$url.$stamp.'">'.sprintf('%d',date('d', $stamp)).'</a></td>'."/n";
112 if(date('w', $stamp)==6) $str.="/t".'</tr>'."/n";
113 }
114 $str .= '</table>';
115 return $str;
116 }
117 // use it in this way
118 echo calendar(time());
119 ?>
120 运行效果见http://www.geofuture.net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值