У меня есть эта функция, которая дает мне набор параметров в выбранном вводе. Варианты дают мне время с интервалом в 5 минут. Проблема в том, что время похоже на 23:45, параметры начинаются с 00:10, а циклы - на основе переменной $ j.PHP Временной цикл между временем начала и временем окончания
Это то, что я хочу сделать словами: Дайте мне список опций за 5 минут от $ open_time до $ close_time. Если текущее время ($ timeNow) больше, чем $ open_time, установите $ open_time в значение $ timeNow, которое будет показано как первый вариант. Сделайте этот цикл только до $ close_time.
Я надеюсь, что это ясно. Цените вашу помощь :)
Вот код:
function selectTimesofDay(){
$output = "";
$now = date('G:i ', time()); // time now
$timeNow = strtotime($now); // strtotime now
$next_five = ceil($timeNow/300) * 300; // get next 5 minute
// time now rounded to next 10 minute
$round5minNow = date('G:i', strtotime('+15 minutes',$next_five));
$open_time = strtotime('17:00');
$close_time = strtotime('23:59');
// in the middle of working hours, time sets to current
if($timeNow >= $open_time && $timeNow < $close_time){
$open_time = strtotime($round5minNow);
}
$time_diff = round(($close_time - $open_time)/60) ;
if(date('l') == 'Friday'){
$j = ($time_diff/5)+11; // working hours extended untill 1:00 AM
} else{
$j = ($time_diff/5)-1; // working hours untill 12:00 AM
}
for($i = 0; $i <= $j; $i++){
$b = $i*5;
$data = date('l')." - ".date("H:i", strtotime('+'.$b.' minutes', $open_time));
$output .= "<option value=\"{$data}\">";
$output .= $data;
$output .= "</option>";
}
return $output;
}
Итак, что не так с вышеуказанным кодом? –
, когда время на клиентской машине достигает 23:45, набор параметров показывает время, начинающееся с 00:15 и продолжается до 23:55! –