$monthnow=isset($_GET['mon'])?$_GET['mon']:date("n"); $yearnow=isset($_GET['year'])?$_GET['year']:date("Y"); if($monthnow==13){ $monthnow=1; $yearnow=$yearnow+1; } if($monthnow==0){ $monthnow=12; $yearnow=$yearnow-1; } $mdays=date("t"); //当月总天数 $datenow=date("j"); //当日日期 //计算当月第一天是星期几 $wk1st=date("w",mktime(0,0,0,$monthnow,1,$yearnow)); $trnum=ceil(($mdays+$wk1st)/7); //计算表格行数 //表格字串 $tabstr=" <!-- a{TEXT-DECORATION:none;color:#000;} tr,td{border='1' bordercolor='#fff'} --> <table style="border-collapse: collapse; height: 250px;" border="1" width="300" align="center" bordercolor="#46a3ff">"; $tabstr.=" <tbody> <tr> <td><a href="?mon=".($monthnow-1)."&year=".$yearnow.""><<<</a></td> <td colspan="5" align="center">"; $tabstr.=$yearnow.'年 '.$monthnow.'月 '.date('d',time())."日 </td> <td>"; $tabstr.="<a href="?mon=".($monthnow+1)."&year=".$yearnow."">>>></a></td> </tr> "; $tabstr.=" <tr> <td align="center">日</td> <td align="center">一</td> <td align="center">二</td> <td align="center">三</td> <td align="center">四</td> <td align="center">五</td> <td align="center">六</td> </tr> "; for($i=0;$i<$trnum;$i++) { $tabstr.=" <tr>"; //每行七个单元格 for($k=0;$k<7;$k++) { //取得单元格自身序号 $tabidx=$i*7+$k; //若单元格序号小于当月第一天的星期数($wk1st)或大于(月总数+$wk1st),只填写空格,反之,写入日期 ($tabidx<$wk1st or $tabidx>$mdays+$wk1st-1) ? $dayecho="&nbsp" : $dayecho=$tabidx-$wk1st+1; //突出标明今日日期 if($dayecho!='&nbsp'){ $num=$dayecho; if($dayecho==$datenow) $dayecho="<span style="background-color: #185096; color: #fff;"><strong>".$dayecho."</strong></span>"; $tabstr.=' <td align="center"><a href="#&m="></a></td> "; }else{ $tabstr.=' <td align="center">'.$dayecho."</td> "; } } $tabstr.="</tr> "; } $tabstr.="</tbody> </table> "; print $tabstr; //输出日历