> Hi,
> Is there any PHP function or set of PHP files that allows me to print the
> current month in calendar format ?
>
You should write one. Here's mine, which I'm sure could be improved:
HTH
--
Lowell Allen
function display_calendar($mon, $year) {
// find current date and day of the month for comparison
$today = getdate();
$current_mon = $today['mon'];
$current_mday = $today['mday'];
$current_year = $today['year'];
// if no arguments provided with function call
if ((!isset($mon)) || ($mon == "")) {
$mon = $today['mon'];
}
if ((!isset($year)) || ($year == "")) {
$year = $today['year'];
}
// establish timestamp values from arguments provided
$cal_date = getdate(mktime(0, 0, 0, $mon, 1, $year));
$month = $cal_date['month'];
$weekday = $cal_date['weekday'];
// find position of first day of month, 0 thru 6 for Sun. thru Sat.
$firstdayposition = $cal_date['wday'];
// find day of year of first day of month
$firstday_yearday = $cal_date['yday'];
$lastday = getdate(mktime(0, 0, 0, $mon + 1, 0, $year));
// find position of last day of month
$lastdayposition = $lastday['wday'];
// find day of year of last day of month
$lastday_yearday = $lastday['yday'];
// find number of days in current month
$numdays = $lastday_yearday - $firstday_yearday + 1;
// find last day date of previous month
$prevmonlastday = getdate(mktime(0, 0, 0, $mon, 0));
$prevmonlastdaydate = $prevmonlastday['mday'];
// html layout for month
if ($firstdayposition != 0) {
$caldate = $prevmonlastdaydate - $firstdayposition + 1;
$color = "#666";
} else {
$caldate = 1;
$color = "#333";
}
?>
<h4><?=$month?> <?=$year?></h4>
<table cellpadding="4" cellspacing= "0" style="border: solid 1px
#cccccc;">
<tr>
<td class="dayslabel" width="14%">S</td>
<td class="dayslabel" width="14%">M</td>
<td class="dayslabel" width="14%">T</td>
<td class="dayslabel" width="14%">W</td>
<td class="dayslabel" width="14%">T</td>
<td class="dayslabel" width="14%">F</td>
<td class="dayslabel" width="14%">S</td>
</tr>
<tr>
<?
$i = 1;
while ($i <= ($numdays + $firstdayposition + 6 - $lastdayposition)) {
if (($i % 7 == 0) && ($i != ($numdays + $firstdayposition + 6 -
$lastdayposition))) {
if (($caldate == $current_mday) && ($mon == $current_mon) &&
($year == $current_year) && ($color == "#333")) {
echo("<td class=\"calendar\" style=\"color:
#600;\"><strong>" . $caldate . "</strong></td>\n</tr>\n<tr>\n");
} else {
echo("<td class=\"calendar\" style=\"color: " . $color .
";\">" . $caldate . "</td>\n</tr>\n<tr>\n");
}
} else {
if (($caldate == $current_mday) && ($mon == $current_mon) &&
($year == $current_year) && ($color == "#333")) {
echo("<td class=\"calendar\" style=\"color:
#600;\"><strong>" . $caldate . "</strong></td>\n");
} else {
echo("<td class=\"calendar\" style=\"color: " . $color .
";\">" . $caldate . "</td>\n");
}
}
$i = $i + 1;
if ($i - 1 == $firstdayposition) {
$caldate = 1;
$color = "#333";
} elseif (($i - 1) == ($numdays + $firstdayposition)) {
$caldate = 1;
$color = "#666";
} else {
$caldate = $caldate + 1;
}
}
?>
</tr>
</table>
<?
}
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php