这是我的方案,
假设我们有一辆食品卡车,它有每日安排,并预定有开始时间和结束时间。卡车的开始时间 09:00:00 ,结束时间 12:00:00 。如果用户输入以下输入
的 Scenario1:
start_time = 09:00
out_put
为真并返回时间表
Scenario2:
start_time = 11:00
out_put
是的,并提供时间表
场景3:
start_time = 12:00
out_put
是的,并提供时间表
Scenario4:
start_time = 11:00
end_time = 12:00
out_put
为真,并给出一个时间表(因为它位于间隔中)
我已经编写了以下查询来检查这些情景
public function search_schedule($time){
if (isset($time['start_time']) && count($time) > 0) {
$sql->where(function($sql) use ($time){
$sql->where('start_time', '<=', date("H:i:s",strtotime($time['start_time'])));
$sql->where('end_time', '>=', date("H:i:s", strtotime($time['start_time'])));
});
}
if (isset($time['end_time']) && count($time) > 0) {
$sql->where(function($sql) use ($time) {
$sql->where('start_time', '<=', date("H:i:s", strtotime($time['end_time'])));
$sql->where('end_time', '>=', date("H:i:s", strtotime($time['end_time'])));
});
}
}
此代码段对于上述方案非常适用。只有一种情况是产生问题。场景是
Scanario
Start_time: 08:00:00
end_time: 11:00:00
它应该返回时间表,因为end_time在9-12区间
在这方面我该怎么做?