我有一个数组,我在24个小时内划分了3个时段(每个8小时)
<?php
$timeSlot = [
'A' => '06:00-14:00', // 8 hr
'B' => '14:00-22:00', // 8 hr
'C' => '22:00-06:00', // 8 hr
];
加载脚本后如何获得当前的时间段(A / B / C)?
答案 0 :(得分:0)
$current_hour = date('h');
将按时区返回当前时间。然后,您可以使用任何条件语句来分配插槽。
答案 1 :(得分:0)
我相信这应该可以满足您的需求。
反转数组以使其向后循环,如果当前时间大于$ time,则得到一个匹配项。
当循环结束时,我们仍然不知道“ A”实际上是“ A”还是“ C”。
再次比较时间并回显$ slot。
$timeSlot = [
'A' => '06:00-14:00', // 8 hr
'B' => '14:00-22:00', // 8 hr
'C' => '22:00-06:00', // 8 hr
];
$timeSlot = array_reverse($timeSlot);
foreach($timeSlot as $slot => $time){
if(date("H") >= substr($time, 0,2)){
break;
}
}
if($slot == "A"){
if(date("H") < substr($time, 0,2)){
$slot = max(array_keys($timeSlot));
}
}
echo $slot;