scarface83 Posted February 27, 2007 Share Posted February 27, 2007 Hi, what code would i use to display a full year instead of just one month at a time ? thanks Link to comment https://forums.phpfreaks.com/topic/40419-help-with-calendar/ Share on other sites More sharing options...
scarface83 Posted February 27, 2007 Author Share Posted February 27, 2007 this is what i have so far if this helps , <?php function build_calendar($month,$year,$dateArray) { // Create array containing abbreviations of days of week. $daysOfWeek = array('Su','Mo','Tu','We','Th','Fr','Sa'); // What is the first day of the month in question? $firstDayOfMonth = mktime(0,0,0,$month,1,$year); // How many days does this month contain? $numberDays = date('t',$firstDayOfMonth); // Retrieve some information about the first day of the // month in question. $dateComponents = getdate($firstDayOfMonth); // 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>"; } // Is the $currentDay a member of $dateArray? If so, // the day should be linked. if (in_array($currentDay,$dateArray)) { $date = "$year-$month-$currentDay"; $calendar .= "<td class='linkedday'> <a href='calendar.php?date=$date' class='calendarlink'>$currentDay</a></td>"; // $currentDay is not a member of $dateArray. } else { $calendar .= "<td class='day'>$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 .= "</table>"; return $calendar; } ?> Link to comment https://forums.phpfreaks.com/topic/40419-help-with-calendar/#findComment-195575 Share on other sites More sharing options...
scarface83 Posted February 28, 2007 Author Share Posted February 28, 2007 can anyone help me ? Link to comment https://forums.phpfreaks.com/topic/40419-help-with-calendar/#findComment-195896 Share on other sites More sharing options...
gazever Posted February 28, 2007 Share Posted February 28, 2007 Loop through where you call the function 12 times, increasing month by one each time. Link to comment https://forums.phpfreaks.com/topic/40419-help-with-calendar/#findComment-195945 Share on other sites More sharing options...
scarface83 Posted February 28, 2007 Author Share Posted February 28, 2007 sorry to sound like a noob which i am but how would i do that ? would it be looping the below ? echo build_calendar($month,$year,$dateArray); Link to comment https://forums.phpfreaks.com/topic/40419-help-with-calendar/#findComment-196285 Share on other sites More sharing options...
scarface83 Posted February 28, 2007 Author Share Posted February 28, 2007 will this work ok ? while($month<=12) { echo build_calendar($month,$year,$dateArray); $month++; } Link to comment https://forums.phpfreaks.com/topic/40419-help-with-calendar/#findComment-196334 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.