因此,我有一个表中的tm_timekeep(id(pk),开始(varchar),结束(varchar))[和它的模型]在数据库中的HH:MM格式的一些时间间隔。例如:如何检查时间间隔是否在Laravel 4.2/php中重叠?
id|start|end |
---------------
0 |10:00|10:30|
1 |11:23|11:55|
2 |13:15|15:39|
我想要插入新行并修改现有的行,如果没有间隔之间的重叠。 如果我想添加为间隔11:57-12:40会好的,但09:00-10:20不会因10:00-10:30而更新,这与更新行相同。如果我想更新一行,我需要一个函数在修改行之前检查条件。我应该怎么做? 我当前的代码片段:
public function checkInterval($start, $end){
$counter = 0;
$timekeepArray = Timekeep::all();
$start = date('H:i',Input::get('start'));
$end = date('H:i',Input::get('end'));
foreach($timekeepArray as $timekeep)
{
if($start <= $timekeep->end && $end>=$timekeep->start){
counter++; //in range
}
return counter;
}
}
在此之后我检查计数器的值,但我的问题是,我总是得到0,即使有来自输入的重叠。