前两天看了一个比较好用的日历代码,记下来:
1<style>
2td { font-family: "宋体"; font-size:9pt}
3</style>
4<body bgcolor="eeeeee">
5<table width="180" cellpadding="0" cellspacing="1" bgcolor="dddddd" align=center>
6<?
7//以下为PHP中通过该日历算法实现的具体代码
8
9 //先判断是否指定了一个年份和月份,没有则根据当前的年和月份显示
10 if($ReqDate==""){
11 $pyear=date("Y");
12 $pmonth=date("m");
13 $CurrentDate=date("Y-m-j");
14 }else{
15 $ReqDateStrs = explode("-",$ReqDate );
16 $pyear=$ReqDateStrs[0];
17 $pmonth=$ReqDateStrs[1];
18 $CurrentDate=$ReqDate;
19 }
20
21//以下的代码生成日历显示的表格头内容
22?>
23<tr align="center" bgcolor="#dddddd">
24 <td width="14%" height="19" align="center">
25 <input type="button" value="<<" οnclick=" javascript :location.href='?ReqDate=<? echo date("Y-m-j",mktime(0,0,0,$pmonth-1,1,$pyear)); ?>'">
26 </td>
27 <td colspan="5" align="center">
28 <? echo $CurrentDate; ?>
29 </td>
30 <td width="14%" align="center">
31 <input type="button" value=">>" οnclick=" javascript :location.href='?ReqDate=<? echo date("Y-m-j",mktime(0,0,0,$pmonth+1,1,$pyear)); ?>'">
32 </td>
33 </tr>
34 <tr align="center" bgcolor="#CCCCCC">
35 <td width="14%" height="19"> 日</td>
36 <td width="14%"> 一</td>
37 <td width="14%"> 二</td>
38 <td width="14%"> 三</td>
39 <td width="14%"> 四</td>
40 <td width="14%"> 五</td>
41 <td width="14%"> 六</td>
42 </tr>
43 <tr align=center bgcolor=ffffff height=19>
44<?
45 //获得要显示月份的第一天为周几
46 $nunmonthstart=date('w',mktime(0,0,0,$pmonth,1,$pyear));
47 //获得要显示月份一共有多少天
48 $nunmonthend=date('t',mktime(0,0,0,$pmonth,1,$pyear));
49 //判断显示日历需要用几行表格来显示(每行显示7天)
50 if($nunmonthstart+$nunmonthend<36){
51 $maxi=36;
52 }
53 else{
54
$maxi=43;
55
}
56 //循环生成表格并显示
57 for( $i=1; $i <$maxi; $i++)
58
{
59
$iv=$i-$nunmonthstart;
60
if($i>$nunmonthstart && $i<=$nunmonthend+$nunmonthstart) {
61
//如果为显示的是今天则用红色背景显示
62
if($iv==date("d") && date("n")==$pmonth && date("Y")==$pyear){
63
print( "<td align=center bgcolor=ffaaaa><a href='#' target=_blank>".$iv."</a></td>" );
64
}else{
65
print( "<td align=center><a href='#' target=_blank>".$iv."</a></td>" );
66
}
67
}else{
68
print( "<td> </td>" );
69
}
70
71
//如果能被7整除(每行显示7个)则输出一个换行
72
if ($i%7 ==0) {
73
print( "</tr><tr align=center bgcolor=ffffff height=19>" );
74
}
75
}
76?>
77</tr>
78</table>
79</body>
80</html>
原文地址: http://ajax.cnrui.cn/article/2/1/2006/20061116834.shtml
1<style>
2td { font-family: "宋体"; font-size:9pt}
3</style>
4<body bgcolor="eeeeee">
5<table width="180" cellpadding="0" cellspacing="1" bgcolor="dddddd" align=center>
6<?
7//以下为PHP中通过该日历算法实现的具体代码
8
9 //先判断是否指定了一个年份和月份,没有则根据当前的年和月份显示
10 if($ReqDate==""){
11 $pyear=date("Y");
12 $pmonth=date("m");
13 $CurrentDate=date("Y-m-j");
14 }else{
15 $ReqDateStrs = explode("-",$ReqDate );
16 $pyear=$ReqDateStrs[0];
17 $pmonth=$ReqDateStrs[1];
18 $CurrentDate=$ReqDate;
19 }
20
21//以下的代码生成日历显示的表格头内容
22?>
23<tr align="center" bgcolor="#dddddd">
24 <td width="14%" height="19" align="center">
25 <input type="button" value="<<" οnclick=" javascript :location.href='?ReqDate=<? echo date("Y-m-j",mktime(0,0,0,$pmonth-1,1,$pyear)); ?>'">
26 </td>
27 <td colspan="5" align="center">
28 <? echo $CurrentDate; ?>
29 </td>
30 <td width="14%" align="center">
31 <input type="button" value=">>" οnclick=" javascript :location.href='?ReqDate=<? echo date("Y-m-j",mktime(0,0,0,$pmonth+1,1,$pyear)); ?>'">
32 </td>
33 </tr>
34 <tr align="center" bgcolor="#CCCCCC">
35 <td width="14%" height="19"> 日</td>
36 <td width="14%"> 一</td>
37 <td width="14%"> 二</td>
38 <td width="14%"> 三</td>
39 <td width="14%"> 四</td>
40 <td width="14%"> 五</td>
41 <td width="14%"> 六</td>
42 </tr>
43 <tr align=center bgcolor=ffffff height=19>
44<?
45 //获得要显示月份的第一天为周几
46 $nunmonthstart=date('w',mktime(0,0,0,$pmonth,1,$pyear));
47 //获得要显示月份一共有多少天
48 $nunmonthend=date('t',mktime(0,0,0,$pmonth,1,$pyear));
49 //判断显示日历需要用几行表格来显示(每行显示7天)
50 if($nunmonthstart+$nunmonthend<36){
51 $maxi=36;
52 }
53 else{
54
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
55
![](https://i-blog.csdnimg.cn/blog_migrate/75f096cc6e80668e20cc60cbdec38708.gif)
56 //循环生成表格并显示
57 for( $i=1; $i <$maxi; $i++)
58
![](https://i-blog.csdnimg.cn/blog_migrate/4d8730745b8464c55a0956233cd80d60.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/8d53adc3a2ea5a92e2b9b24bd38dd9b1.gif)
59
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
60
![](https://i-blog.csdnimg.cn/blog_migrate/2e9a7da83490d8a342dc95a9bd210ead.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/aaa59b9a95b8ec7c22050b8030d7db9a.gif)
61
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
62
![](https://i-blog.csdnimg.cn/blog_migrate/2e9a7da83490d8a342dc95a9bd210ead.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/aaa59b9a95b8ec7c22050b8030d7db9a.gif)
63
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
64
![](https://i-blog.csdnimg.cn/blog_migrate/2e9a7da83490d8a342dc95a9bd210ead.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/aaa59b9a95b8ec7c22050b8030d7db9a.gif)
65
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
66
![](https://i-blog.csdnimg.cn/blog_migrate/574db2aed05ca246c0625b4a1da718d2.gif)
67
![](https://i-blog.csdnimg.cn/blog_migrate/2e9a7da83490d8a342dc95a9bd210ead.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/aaa59b9a95b8ec7c22050b8030d7db9a.gif)
68
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
69
![](https://i-blog.csdnimg.cn/blog_migrate/574db2aed05ca246c0625b4a1da718d2.gif)
70
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
71
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
72
![](https://i-blog.csdnimg.cn/blog_migrate/2e9a7da83490d8a342dc95a9bd210ead.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/aaa59b9a95b8ec7c22050b8030d7db9a.gif)
73
![](https://i-blog.csdnimg.cn/blog_migrate/defaf124fc9684ad46d1670d96a7449a.gif)
74
![](https://i-blog.csdnimg.cn/blog_migrate/574db2aed05ca246c0625b4a1da718d2.gif)
75
![](https://i-blog.csdnimg.cn/blog_migrate/75f096cc6e80668e20cc60cbdec38708.gif)
76?>
77</tr>
78</table>
79</body>
80</html>
原文地址: http://ajax.cnrui.cn/article/2/1/2006/20061116834.shtml