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 ------------------**/ } <? Link to comment https://forums.phpfreaks.com/topic/61082-solved-increment-time-with-for-looping/ 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"; } Link to comment https://forums.phpfreaks.com/topic/61082-solved-increment-time-with-for-looping/#findComment-304272 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.