Jump to content

Recommended Posts

Hi guys

 

The scripty below is an appointment (event) calender which selects events from my db. If the day is today's date it colour of the date colomn is red, if the day is the appointment date the colour is grey (the style is link using css class).

 

I was would like the script to be able to deal with multiple date i.e. if an event/appointment has a start and end date. Does anyone have an idea how I could modify the codes to select multiple dates in display them as normal.

 

Thanks alot

<?php
			//check to see if passing variable is set i.e. if true get day, month, year.
			if(isset($_GET['day'])){
			$day = $_GET['day'];
			} else{
			//Get today's date from the computer and put them in date, month, year
			$day = date("j");
			}
			if(isset($_GET['month'])){
			$month = $_GET['month'];
			} else{
			$month = date("n");
			}
			if(isset($_GET['year'])){
			$year = $_GET['year'];
			} else{
			$year = date("Y");
			}
			//echo $day."/".$month."/".$year;

			//calender variable
			$currentTimeStamp = strtotime("$year-$month-$day");
			//gets current month name
			$first_day = mktime(0,0,0,$month, 1, $year) ;
			$monthName = date("F", $first_day);
			//gets how many days are there in the current month
			$numDays = date("t", $currentTimeStamp);
			//variable to count cell in the loop
			$counter = 0;

			?>
                

                
                
                <table width="1028" border="0" summary="APPOINTMENT Calender">
                  <tr>
                    <td  bgcolor="#EAEAE2"><input style="width:40px" type='button' value='«' name='previousbutton' onClick="goLastMonth(<?php echo $month . ", " . $year; ?>);"/></td>
                    <td colspan="5" align="center"><?php echo $monthName.", ".$year; ?></td>
                    <td  bgcolor="#EAEAE2"><input style="width:40px" type='button' value='»' name='nextbutton' onClick="goNextMonth(<?php echo $month . ", " . $year; ?>);"/></td>
                  </tr>
                  <tr>
                    <td width="50px" align="center" scope="col">Sun</td>
                    <td width="50px" align="center"  scope="col">Mon</td>
                    <td width="50px" align="center" scope="col">Tue</td>
                    <td width="50px" align="center" scope="col">Wed</td>
                    <td width="50px" align="center" scope="col">Thu</td>
                    <td width="50px" align="center" scope="col">Fri</td>
                    <td width="50px" align="center" scope="col">Sat</td>
                  </tr>
                  <?php 
			  echo "<tr>";
			  //looping from 1 to the number of days in the month
			  for($i = 1; $i < $numDays+1; $i++, $counter++){
			  //males a timestamp for each day in the loop
			  			$timeStamp = strtotime("$year-$month-$i");
						//makes a check if it is 'day 1'
						if($i == 1){
						//gets which day 'day 1' fall on
						$firstDay = date("w", $timeStamp);
						//makes a loop and makes a blank cell if it's not the first day
						for($j = 0; $j < $firstDay; $j++, $counter++){
						//blank space
						echo "<td> </td>";
						}
					}
					if($counter % 7 == 0){
					echo "</tr><tr>";
					}
					$monthstring = $month;
					$monthlength = strlen($monthstring);
					//day string get from $i loop
					$daystring = $i;
					$daylength = strlen($daystring);
					if($monthlength <= 1){
						$monthstring = "0".$monthstring;
					}
					if($daylength <= 1){
						$daystring = "0".$daystring;
					}

					$todaysDate = date("d/m/Y");
		            $dateToCompare = $daystring . '/' . $monthstring . '/' . $year;
					echo "<td align='center' ";
					if($todaysDate == $dateToCompare){
					echo "class='today'";
					}else{
					$sqlcount = "select b_date from booked_appointment where b_date='".$dateToCompare."'";
					$noOfEvent = mysql_num_rows(mysql_query($sqlcount));
					if($noOfEvent >= 1){
					echo "class='event'";
					}
					}
					echo "><strong><p align='center'><a href='system_diary.php?&day=" . $daystring . "&month=" . $monthstring . "&year=" . $year . "&v=true'>".$i."</a></p></strong></td>";	
			  }
			  echo "</tr>";
			  ?>
                </table>

Link to comment
https://forums.phpfreaks.com/topic/254655-php-multiple-date-calender/
Share on other sites

  • 3 weeks later...

Hello,

 

If you have start and end date, in your database fields then just change your query as following

 

$sqlcount = "select b_date from booked_appointment where ('".$dateToCompare."' BETWEEN b_date_start AND b_date_end)";

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.