assgar Posted July 21, 2007 Share Posted July 21, 2007 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 ------------------**/ } <? Quote Link to comment Share on other sites More sharing options...
assgar Posted July 21, 2007 Author Share Posted July 21, 2007 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"; } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.