zm6931
新手上路

UID 70097
精华
0
积分 48
帖子 32
金钱 48 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-3-22
状态 离线
|
PHP实现的简单日历
最近工作找了一些日历的插件,简单修改下,拿来贴一帖。
这个由php实现的日历,在使用的时候有很多限制,如果每次查看上个月或者下个月就来一次刷新,所以该代码仅供娱乐
<?php function calendar() { if($_GET['ym']) { $year=substr($_GET['ym'],0,4); $month=substr($_GET['ym'],4,(strlen($_GET['ym'])-4));
if($month>12) { $year+=floor($month/12); $month=$month%12; } if($year>2030) { $year=2030; } if($year<1980) { $year=1980; } }
$year=isset($year)?$year:date('Y'); $month=isset($month)?$month:date('n');
if($year==date('Y') && $month==date('n')) { $today=date('j'); }
if($month-1==0) { $prevmonth=($year-1)."12"; } else { $prevmonth=$year.($month-1); }
if($month+1==13) { $nextmonth=($year+1)."1"; } else { $nextmonth=$year.($month+1); }
$prevyear=($year-1).$month; $nextyear=($year+1).$month;
echo <<<END <table width="200" border="0" cellpadding="2" cellspacing="2"> <tr> <td class="weekday"><a href="?ym=$prevyear"><<</a></td> <td class="normalday"><a href="?ym=$prevmonth"><</a></td> <td colspan="3" class="normalday">$year - $month</td> <td class="normalday"><a href="?ym=$nextmonth">></a></td> <td class="weekday"><a href="?ym=$nextyear">>></a></td> </tr> <tr> <td width="27" class="weekday">日</td> <td width="27" class="normalday">一</td> <td width="27" class="normalday">二</td> <td width="27" class="normalday">三</td> <td width="27" class="normalday">四</td> <td width="27" class="normalday">五</td> <td width="27" class="weekday">六</td> </tr> END;
$nowtime=mktime(0,0,0,$month,1,$year);//当月1号转为秒 $daysofmonth=date('t',$nowtime);//当月天数 $weekofbeginday=date('w',$nowtime);//当月第一天是星期几 $weekofendday=date('w',mktime(0,0,0,$month+1,0,$year));//当月最后一天是星期几 $daysofprevmonth=date('t',mktime(0,0,0,$month,0,$year));//上个月天数 $count=1;//计数 //列出上月后几天 for($i=1;$i<=$weekofbeginday;$i++) { echo "<td class='othermonth'>".($daysofprevmonth-$weekofbeginday+$i)."</td>"; $count++; } //当月全部 for($i=1;$i<=$daysofmonth;$i++) { $css=($count%7==0 || $count%7==1)?"weekday":"normalday"; if($i==$today) { $css .= "today"; } echo "<td class='".$css."'>".$i."</td>"; if($count%7==0) { echo "</tr><tr>"; } $count++; } //下月前几天 for($i=1;$i<=6-$weekofendday;$i++) { echo "<td class='othermonth'>".$i."</td>"; } echo <<<END <tr> <td colspan="7"></td> </tr> </table> END; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>calendar</title> <style type="text/css"> <!-- .weekday { font-size: 9pt; color: #FF0000; text-align: center; } .normalday { font-size: 9pt; color: #000000; text-align: center; } .weekdaytoday { font-size: 9pt; color: #FF0000; text-align: center; background-color: #FFD9D9; font-weight: bold; } .normaldaytoday { font-size: 9pt; color: #000000; text-align: center; background-color: #DDDDDD; font-weight: bold; } .othermonth { font-size: 9pt; font-style: italic; color: #999999; text-align: center; } --> </style> </head>
<body> <?php calendar();?> </body> </html>
|
|