aftabn10 Posted April 26, 2009 Share Posted April 26, 2009 Thanks to Angela Bradley, I have managed to get a script to display a monthly calendar. What I would like to know is how i could add a previous and next button to display other months of the calendar. The following is the script I have used: <?php //This gets today's date $date =time () ; //This puts the day, month, and year in seperate variables $day = date('d', $date) ; $month = date('m', $date) ; $year = date('Y', $date) ; //Here we generate the first day of the month $first_day = mktime(0,0,0,$month, 1, $year) ; //This gets us the month name $title = date('F', $first_day) ; //Here we find out what day of the week the first day of the month falls on $day_of_week = date('D', $first_day) ; //Once we know what day of the week it falls on, we know how many blank days occure before it. If the first day of the week is a Sunday then it would be zero switch($day_of_week){ case "Sun": $blank = 0; break; case "Mon": $blank = 1; break; case "Tue": $blank = 2; break; case "Wed": $blank = 3; break; case "Thu": $blank = 4; break; case "Fri": $blank = 5; break; case "Sat": $blank = 6; break; } //We then determine how many days are in the current month $days_in_month = cal_days_in_month(0, $month, $year) ; //Here we start building the table heads echo "<table border=0 width=294>"; echo "<tr><th colspan=7> $title $year </th></tr>"; echo "<tr><td width=42>S</td><td width=42>M</td><td width=42>T</td><td width=42>W</td><td width=42>T</td><td width=42>F</td><td width=42>S</td></tr>"; //This counts the days in the week, up to 7 $day_count = 1; echo "<tr>"; //first we take care of those blank days while ( $blank > 0 ) { echo "<td></td>"; $blank = $blank-1; $day_count++; } //sets the first day of the month to 1 $day_num = 1; //count up the days, untill we've done all of them in the month while ( $day_num <= $days_in_month ) { echo "<td> $day_num </td>"; $day_num++; $day_count++; //Make sure we start a new row every week if ($day_count > 7) { echo "</tr><tr>"; $day_count = 1; } } //Finaly we finish out the table with some blank details if needed while ( $day_count >1 && $day_count <=7 ) { echo "<td> </td>"; $day_count++; } echo "</tr></table>"; ?> Please could somebody help. Thanks in advance. Quote Link to comment https://forums.phpfreaks.com/topic/155699-calendar/ Share on other sites More sharing options...
ignace Posted April 26, 2009 Share Posted April 26, 2009 add this code: // assume this month $month = date('m', $date); // change if a valid month has been supplied if (isset($_POST['month']) && !empty($_POST['month']) && is_numeric($_POST['month'])) { $postMonth = (int) $_POST['month']; if ($postMonth >= 1 && $postMonth <= 12) { $month = $postMonth; } else if ($postMonth > 12) { $month = 1; } else if ($postMonth < 1) { $month = 12; } unset($postMonth); } probably you want to add this functionality to your submit buttons: <?php function monthCarousel($currentMonth) { if ($currentMonth >= 1 && $currentMonth <= 12) { return $currentMonth; } else if ($currentMonth < 1) { return 12; } else if ($currentMonth > 12) { return 1; } } ?> <input type="submit" name="previous" id="previous" value="<?php print monthCarousel($month - 1); ?>" /> <input type="submit" name="next" id="next" value="<?php print monthCarousel($month + 1); ?>" /> Quote Link to comment https://forums.phpfreaks.com/topic/155699-calendar/#findComment-819647 Share on other sites More sharing options...
aftabn10 Posted April 27, 2009 Author Share Posted April 27, 2009 Thanks for your response ignace, really appreciate it. Will let you know how i get on. Thanks once again. Quote Link to comment https://forums.phpfreaks.com/topic/155699-calendar/#findComment-820188 Share on other sites More sharing options...
aftabn10 Posted April 27, 2009 Author Share Posted April 27, 2009 ignace, silly question but just want to clarify whereabouts to add the code. I am guessing the function code would go towards the top and the buttons code more towards the following: //Here we start building the table heads echo "<table border=0 width=294>"; echo "<tr><th colspan=7> $title $year </th></tr>"; echo "<tr><td width=42>S</td><td width=42>M</td><td width=42>T</td><td width=42>W</td><td width=42>T</td><td width=42>F</td><td width=42>S</td></tr>"; Would that be correct? Quote Link to comment https://forums.phpfreaks.com/topic/155699-calendar/#findComment-820352 Share on other sites More sharing options...
aftabn10 Posted May 5, 2009 Author Share Posted May 5, 2009 Any1? Quote Link to comment https://forums.phpfreaks.com/topic/155699-calendar/#findComment-826579 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.