Jump to content

[SOLVED] increment time with for looping


assgar

Recommended Posts

increment time with for looping

 

Hi

 

I am not sure I am approaching this correctly.

 

I need to increment the appointment time by 15 mins for each loop.

 

This is would be the correct result:

13:00, 13:15, 13:30, 13:45, 14:00,

 

This is what I am getting:

13:15, 13:15, 13:15, 13:15, 13:15

 

The user selects the first appointment example 13:00:00 hrs (HH:MM)

and one or more time blocks.  Time blocks range from 1 to 10. Each is 0.15 mins (H).

 

$event_time = 13:00;//start time

$time_block = 5;// number of loops

$event_length = 0.15;//start time increment by

 

 

 

<?php

/**--------------------------insert appointment in database--------------------------**/
//loop the number of time blocks
for($i = 0; $i < $time_block; $i++)
{


           /**---------------------calculate total duration---------------------**/
	   //Note: event time length * time_block = total event duration
   //split event time
	   list($event_hour, $event_min) = explode(".",$event_time);

   //event length
   list($length_hour, $length_min) = explode(".",$event_length);

   //convert event time to minutes
	   $event_minutes = ($event_hour * 60) + $event_min;

	   //convert event time length to minutes
	   $length_minutes = (length_hour * 60) + $length_min;


	  //add event time to event duration = next event time
	  $total_min = $event_minutes + $length_minutes++;
  
  //convert minutes to hours and minutes
  if($total_min < 0)
        {
            $min =Abs($total_min);
	}
	else
 	   {
		$min = $total_min;
	   }
  $H = Floor($min/60);
  $M = ($min - ($H * 60))/100;
  $hours = $H + $M;

  if($total_min < 0) 
 	{
 	   $hours = $hours * (-1);
	}

 $expl = explode(".",$hours);
 $H = $expl[0];
  
 if(empty($expl[1])) 
    {
 	$expl[1] = 00;
    } 

 $M = $expl[1];
 if(strlen($M) < 2)
    {
	$M = $M . 0;
    }

    	$new_event_time = $H.".".$M;//total duration



/**-------------------database insert statement goes here ------------------**/

   }
<?

Link to comment
https://forums.phpfreaks.com/topic/61082-solved-increment-time-with-for-looping/
Share on other sites

Hi

 

Thanks for the response.

 

This is the solution:

 

 

$event_time = "13:00"; 
$time_block = 5; 
$event_length = 15; // minutes 

for($i = 0, $eTime = strtotime($event_time); 
    $i < $time_block; 
    $i++, $eTime = strtotime("+$event_length minutes", $eTime)) 
{ 
   $new_event_time = date('H:i', $eTime); 
   echo "<p>$new_event_time</p>\n"; 
}

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.