/ Published in: PHP
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
<?php function build_calendar($month,$year,$dateArray) { // Create array containing abbreviations of days of week. // What is the first day of the month in question? // How many days does this month contain? // Retrieve some information about the first day of the // month in question. // What is the name of the month in question? $monthName = $dateComponents['month']; // What is the index value (0-6) of the first day of the // month in question. $dayOfWeek = $dateComponents['wday']; // Create the table tag opener and day headers $calendar = "<table class='calendar'>"; $calendar .= "<caption>$monthName $year</caption>"; $calendar .= "<tr>"; // Create the calendar headers foreach($daysOfWeek as $day) { $calendar .= "<th class='header'>$day</th>"; } // Create the rest of the calendar // Initiate the day counter, starting with the 1st. $currentDay = 1; $calendar .= "</tr><tr>"; // The variable $dayOfWeek is used to // ensure that the calendar // display consists of exactly 7 columns. if ($dayOfWeek > 0) { $calendar .= "<td colspan='$dayOfWeek'> </td>"; } while ($currentDay <= $numberDays) { // Seventh column (Saturday) reached. Start a new row. if ($dayOfWeek == 7) { $dayOfWeek = 0; $calendar .= "</tr><tr>"; } $date = "$year-$month-$currentDayRel"; $calendar .= "<td class='day' rel='$date'>$currentDay</td>"; // Increment counters $currentDay++; $dayOfWeek++; } // Complete the row of the last week in month, if necessary if ($dayOfWeek != 7) { $remainingDays = 7 - $dayOfWeek; $calendar .= "<td colspan='$remainingDays'> </td>"; } $calendar .= "</tr>"; $calendar .= "</table>"; return $calendar; } ?> Usage Build a calendar of the current month: <?php $month = $dateComponents['mon']; $year = $dateComponents['year']; echo build_calendar($month,$year,$dateArray); ?>
URL: http://css-tricks.com/snippets/php/build-a-calendar-table/