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
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"; 
}

Link to comment
Share on other sites

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.