Jump to content

Calendar days are off


xionhack

Recommended Posts

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.