Wednesday, June 17, 2009

PHP Calendar

function generate_calendar($year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array())
{
$first_of_month = gmmktime(0,0,0,$month,1,$year);
#remember that mktime will automatically correct if invalid dates are entered
#for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998
# this provides a built in "rounding" feature to generate_calendar()

$day_names = array();
#generate all the day names according to the current locale
for($n=0,$t=(3+$first_day)*86400; $n<7; weekday =" ($weekday" title =" htmlentities(ucfirst($month_name)).'" p =" ''.($pl" href="'.htmlspecialchars($pl).'">'.$p.'' : $p).' ';
if($n)
$n = ' '.($nl ? '
href="'.htmlspecialchars($nl).'">'.$n.'' : $n).'';
$calendar = ''."\n".
'\n";

if($day_name_length)
{
#if the day names should be shown ($day_name_length > 0)
#if day_name_length is >3, the full name of the day will be printed
foreach($day_names as $d)
$calendar .= '';
$calendar .= "\n";
}

if($weekday > 0)
$calendar .= ''; #initial 'empty' days
for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++) { if($weekday == 7) { $weekday = 0; #start a new week $calendar .= "\n"; } if(isset($days[$day]) and is_array($days[$day])) { @list($link, $classes, $content) = $days[$day]; if(is_null($content)) $content = $day; $calendar .= '' : '>').
($link ? ''.$content.'' :
$content).'';
}
else
$calendar .= "";
}
if($weekday != 7)
$calendar .= '';
#remaining "empty" days
return $calendar."\n
'.$p.($month_href ? ''.$title.'' : $title).$n."'.htmlentities($day_name_length <>

No comments:

Post a Comment