> 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