note 76520 added to function.cal-days-in-month
| From: | geko45pjatyahoodotcom at osu1 dot php dot net | Date: | Thu, 19 Jul 2007 06:28:28 +0000 |
| Subject: | note 76520 added to function.cal-days-in-month | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-128709@lists.php.net to get a copy of this message | ||
<?php
# PHP Calendar (version 2.3), written by Keith Devens
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; $n++,$t+=86400) #January 4, 1970 was a Sunday
$day_names[$n] = ucfirst(gmstrftime('%A',$t)); #%A means full textual day name
list($month, $year, $month_name, $weekday) =
explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));
$weekday = ($weekday + 7 - $first_day) % 7; #adjust for $first_day
$title = htmlentities(ucfirst($month_name)).' '.$year; #note that some
locales don't capitalize month and day names
#Begin calendar. Uses a real <caption>. See http://diveintomark.org/archives/2002/07/03
@list($p, $pl) = each($pn); @list($n, $nl) = each($pn); #previous and next links, if applicable
if($p) $p = '<span class="calendar-prev">'.($pl ? '<a
href="'.htmlspecialchars($pl).'">'.$p.'</a>' :
$p).'</span> ';
if($n) $n = ' <span class="calendar-next">'.($nl ? '<a
href="'.htmlspecialchars($nl).'">'.$n.'</a>' :
$n).'</span>';
$calendar = '<table class="calendar">'."\n".
'<caption class="calendar-month">'.$p.($month_href ? '<a
href="'.htmlspecialchars($month_href).'">'.$title.'</a>'
: $title).$n."</caption>\n<tr>";
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 .= '<th
abbr="'.htmlentities($d).'">'.htmlentities($day_name_length < 4 ?
substr($d,0,$day_name_length) : $d).'</th>';
$calendar .= "</tr>\n<tr>";
}
if($weekday > 0) $calendar .= '<td
colspan="'.$weekday.'"> </td>'; #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 .= "</tr>\n<tr>";
}
if(isset($days[$day]) and is_array($days[$day])){
@list($link, $classes, $content) = $days[$day];
if(is_null($content)) $content = $day;
$calendar .= '<td'.($classes ? '
class="'.htmlspecialchars($classes).'">' : '>').
($link ? '<a
href="'.htmlspecialchars($link).'">'.$content.'</a>' :
$content).'</td>';
}
else $calendar .= "<td>$day</td>";
}
if($weekday != 7) $calendar .= '<td
colspan="'.(7-$weekday).'"> </td>'; #remaining
"empty" days
return $calendar."</tr>\n</table>\n";
}
echo generate_calendar(2010, 12, 16,3,NULL,0,15, $first_of_month, $day_names, $day_names[$n]);
#echo generate_calendar($year, $month, $days,$day_name_length,$month_href,$first_day,$pn);
?>
----
Server IP: 69.147.83.197
Probable Submitter: 222.126.27.66
----
Manual Page -- http://www.php.net/manual/en/function.cal-days-in-month.php
Edit -- https://master.php.net/note/edit/76520
Del: integrated -- https://master.php.net/note/delete/76520/integrated
Del: useless -- https://master.php.net/note/delete/76520/useless
Del: bad code -- https://master.php.net/note/delete/76520/bad+code
Del: spam -- https://master.php.net/note/delete/76520/spam
Del: non-english -- https://master.php.net/note/delete/76520/non-english
Del: in docs -- https://master.php.net/note/delete/76520/in+docs
Del: other reasons-- https://master.php.net/note/delete/76520
Reject -- https://master.php.net/note/reject/76520
Search -- https://master.php.net/manage/user-notes.php