xionhack Posted February 8, 2009 Share Posted February 8, 2009 Hello. I am working on a scheduler. On the month of January it's good. But when I move to other months, I see that there is a day in the first row that gets out of place. Can somebody help me?! Also, if it's possible, the calendar is starting with "Monday" right now. I want it to start with "Sunday". Here is the code for the calendar and for the css: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html> <head> <link href="stylesheets/myschedule.css" rel="stylesheet" type="text/css" /> </head> <body> <?php function showCalendar(){ // Get key day informations. // We need the first and last day of the month and the actual day $today = getdate(); $firstDay = getdate(mktime(0,0,0,$today['mon'],1,$today['year'])); $lastDay = getdate(mktime(0,0,0,$today['mon']+1,0,$today['year'])); // get the current year $year = date("Y"); // year in full text 2008 // get the current month $month = date("n"); // Create a table with the necessary header informations echo '<table>'; echo ' <tr> <th colspan="7">' .$today['month']." - ".$today['year']. "</th> </tr>"; echo '<tr class="days">'; echo ' <td> Monday </td> <td> Tuesday </td> <td> Wednesday </td> <td> Thursday </td>'; echo ' <td> Friday </td> <td> Saturday </td> <td> Sunday </td> </tr>'; // Display the first calendar row with correct positioning echo '<tr>'; for($i=1;$i<$firstDay['wday'];$i++){ echo '<td> </td>'; } $actday = 0; for($i=$firstDay['wday'];$i<=7;$i++){ $actday++; if ($actday == $today['mday']) { $class = ' class="actday"'; } else { $class = ''; } echo "<td$class> <div id=\"day_box\"> <a href=\"myschedule_input.php?user={$_GET['user']}&date={$month}/{$actday}/{$year}\"> $actday </a>" . show_schedule($month."/".$actday."/".$year) . "</div> </td>"; } echo '</tr>'; //Get how many complete weeks are in the actual month $fullWeeks = floor(($lastDay['mday']-$actday)/7); for ($i=0;$i<$fullWeeks;$i++){ echo '<tr>'; for ($j=0;$j<7;$j++){ $actday++; if ($actday == $today['mday']) { $class = ' class="actday"'; } else { $class = ''; } echo "<td$class> <div id=\"day_box\"> <a href=\"myschedule_input.php?user={$_GET['user']}&date={$month}/{$actday}/{$year}\"> $actday </a>" . show_schedule($month."/".$actday."/".$year) . "</div> </td>";; } echo '</tr>'; } //Now display the rest of the month if ($actday < $lastDay['mday']){ echo '<tr>'; for ($i=0; $i<7;$i++){ $actday++; if ($actday == $today['mday']) { $class = ' class="actday"'; } else { $class = ''; } if ($actday <= $lastDay['mday']){ echo "<td$class> <div id=\"day_box\"> <a href=\"myschedule_input.php?user={$_GET['user']}&date={$month}/{$actday}/{$year}\"> $actday </a>" . show_schedule($month."/".$actday."/".$year) . "</div> </td>";; } else { echo '<td> </td>'; } } echo '</tr>'; } echo '</table>'; } showCalendar(); ?> CSS table { /*width:210px;*/ border:0px solid #888; border-collapse:collapse; } td { width:30px; border-collpase:collpase; border:1px solid #888; text-align:right; padding-right:5px; } .days{ background-color: #F1F3F5; } th { border-collpase:collpase; border:1px solid #888; background-color: #E9ECEF; } .actday{ background-color: #c22; font-weight:bold; } #day_box { border:thick; border-color:#000; border-width:1; width:150px; height:100px; } #text_day { font-size:10.5px; text-align:left; } Link to comment https://forums.phpfreaks.com/topic/144370-calendar-days-are-off/ Share on other sites More sharing options...
xionhack Posted February 9, 2009 Author Share Posted February 9, 2009 Nobody?! Link to comment https://forums.phpfreaks.com/topic/144370-calendar-days-are-off/#findComment-757937 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.