$course_hour = 1; $starttime = '07:00'; $endtime = '16:00';
我希望它是否可以返回如下所示的值数组: 如果
$course_hour = 1;
$return_array = array('07:00 - 08:00', '08:00 - 09:00', '09:00 - 10:00', '10:00 - 11:00', '11 :00 - 12:00', '12:00 - 13:00', '13:00 - 14:00', '14:00 - 15:00', '15:00 - 16:00'); 如果
$course_hour = 1.5;
$return_array = array('07:00 - 08:30', '8:30 - 10:00', '10:00 - 11:30', '11:30 - 13:00', '13 :00 - 14:30', '14:30 - 16:00'); 如果
$course_hour = 2;
$return_array = array('07:00 - 09:00', '09:00 - 11:00', '11:00 - 13:00', '13:00 - 15:00');< /p>
function get_session_times($course_hour, $start_time, $end_time){
if(strlen($start_time) < 5) $start_time = '0'.$start_time;
if(strlen($end_time) < 5) $end_time = '0'.$end_time;
$current_time = date("Y-m-d H:i");
$session_starttime = date("Y-m-d H:i", strtotime(date("Y-m-d ").$start_time));
$session_endtime = date("Y-m-d H:i", strtotime(date("Y-m-d ").$end_time));
$session_starttime_ms = strtotime($session_starttime);
$session_endtime_ms = strtotime($session_endtime);
$session_times_array = array();
for ($i = $session_starttime_ms; $i < $session_endtime_ms; ) {
$session_times_array[] = date("H:i", $i)."
";
$i = $i + ($course_hour * 60 * 60);
}
return $session_times_array;
} Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
<?php $course_hour = 1.5; // 1 || 1.5 || 2 $starttime = '07:00'; $endtime = '16:00'; print_r(get_time_range($course_hour, $starttime, $endtime)); function get_time_range($course_hour, $starttime, $endtime){ $to_add = ''; switch($course_hour): case 1: $to_add = " +1 hours"; break; case 1.5: $to_add = " +1 hours 30 minutes"; break; case 2: $to_add = " +2 hours"; break; default: $to_add = " +1 hours"; break; endswitch; // get the total hours $from_time = strtotime($starttime); $to_time = strtotime($endtime); $diff_mins = round(abs($from_time - $to_time)/60); $diff_hours = $diff_mins/60; $hours_arr =[]; for($i=1; $i<=$diff_hours; $i+= $course_hour): $new_end_strtime = strtotime($starttime . $to_add); $endtime = date('H:i', $new_end_strtime); if($new_end_strtime <= $to_time): // checking the last end time is not greater than defined $endtime $str = $starttime . ' - '. $endtime; $tmp = strtotime($starttime . $to_add); $starttime = date('H:i', $tmp); array_push($hours_arr, $str); endif; endfor; return $hours_arr; } ?>