PHP自动生成月历代码
<?php/*; Function Written by Nelson Neoh @3/2004.; For those who wants to utilize this code, please do not remove this remark.; If you have done any enhancement to this code, please post the copy at http://www.dev-club.com PHP board.; Thank you.
Function usage: calendar(Month,Year)*/ function calendar($MM,$YYYY){ if($MM=='') $MM = date('m'); if($YYYY=='') $YYYY = date('Y'); if(checkdate($MM,1,$YYYY)){ $stringDate = strftime('%d %b %Y',mktime (0,0,0,$MM,1,$YYYY)); $days = strftime('%d',mktime (0,0,0,$MM+1,0,$YYYY)); $firstDay = strftime('%w',mktime (0,0,0,$MM,1,$YYYY)); $lastDay = strftime('%w',mktime (0,0,0,$MM,$days,$YYYY)); $printDays = $days; $preMonth = strftime('%m',mktime (0,0,0,$MM-1,1,$YYYY)); $preYear = strftime('%Y',mktime (0,0,0,$MM-1,1,$YYYY)); $nextMonth = strftime('%m',mktime (0,0,0,$MM+1,1,$YYYY)); $nextYear = strftime('%Y',mktime (0,0,0,$MM+1,1,$YYYY)); print('<table border='1' cellpadding='1' cellspacing='1'>'); print('<tr><th valign='top'><a href='https://www.haobala.com/bcjs/21074.html'.$_SERVER['PHP_SELF'].'?NB='.$_GET['NB'].'&MM='.$preMonth.'&YY='.$preYear.''>P</a></th>'); print('<th colspan='5' valign='top'>'.strftime('%b %Y',mktime (0,0,0,$MM,1,$YYYY)).'</th>'); print('<th valign='top'><a href='https://www.haobala.com/bcjs/21074.html'.$_SERVER['PHP_SELF'].'?NB='.$_GET['NB'].'&MM='.$nextMonth.'&YY='.$nextYear.''>N</a></th></tr>'); print('<tr style='font-family: Verdana; font-size:x-small'>'); print('<th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>'); $currentDays = 1; for($a=1;$a<=5;$a++){ print('<tr valign='top' style='font-family: Verdana; font-size:x-small'>'); $diffDays = $firstDay-$lastDay; if($firstDay>$lastDay && $currentDays ==1 && ($diffDays<>1)){ for($x=$lastDay;$x>=0;$x--){ $printDays = $days-$x; print('<td>$printDays</td>'); } for($z=1;$z<$firstDay-$lastDay;$z++){ print('<td> </td>'); } for($y=$firstDay;$y<7;$y++){ print('<td>$currentDays</td>'); $currentDays++; } } elseif($firstDay!=0 && $currentDays==1){ for($z=1;$z<=$firstDay;$z++){ print('<td> </td>'); } for($y=$firstDay;$y<7;$y++){ print('<td>$currentDays</td>'); $currentDays++; } } else { for($u=1;$u<=7 && $currentDays<=$days;$u++){ print('<td>$currentDays</td>'); $currentDays++; } } print('</tr>'); } print('</table>'); }}?>