Php 拉维全日历
我在做预订系统。。。我有以下问题: 例如,人们可以在2020年6月11日上午10:00到11:00之间预订。。。注册这个。。。第二个客户端无法注册,例如从2020年6月11日10:30到11:30(因为它很忙),到目前为止,一切都很完美 问题1)但如果预订时间为2020年6月11日- 上午10:00至11:00。。。不允许客户在2020年6月11日上午11:00到下午12:00之间注册。。。他们必须在2020年6月11日-上午11:01到下午12:00之间进行此操作 问题2)如果客户注册2020年6月11日-11:00至12:00 它允许我注册2020年6月11日-例如下午1:00到3:00,但不允许 2020年7月11日-11:00至12:00 他说日程安排已经很忙了,但他没有拿今天和我比较Php 拉维全日历,php,laravel,date,Php,Laravel,Date,我在做预订系统。。。我有以下问题: 例如,人们可以在2020年6月11日上午10:00到11:00之间预订。。。注册这个。。。第二个客户端无法注册,例如从2020年6月11日10:30到11:30(因为它很忙),到目前为止,一切都很完美 问题1)但如果预订时间为2020年6月11日- 上午10:00至11:00。。。不允许客户在2020年6月11日上午11:00到下午12:00之间注册。。。他们必须在2020年6月11日-上午11:01到下午12:00之间进行此操作 问题2)如果客户注册2020
public function validarFecha($fecha, $horaInicial, $horaFinal)
{
$agenda = Booking::select("*")
->whereDate('day', $fecha)
->whereBetween('hour_start', [$horaInicial, $horaFinal])
->orWhereBetween('hour_end', [$horaInicial, $horaFinal])
->first();
return $agenda == null ? true : false;
}
-----------------------------
public function store(Request $request)
{
$input = $request->all();
if($this->validarFecha($input["txtFechaInicio"], $input["txtHoraInicio"], $input["txtHoraFinal"])){
$agenda = Booking::create([
"id_user"=>$input["ddlUsuarios"],
"day"=>$input["txtFechaInicio"],
"hour_start"=>$input["txtHoraInicio"],
"hour_end"=>$input["txtHoraFinal"],
"observation"=>$input["txtDescripcion"]
]);
return response()->json(["ok"=>true]);
}else{
return response()->json(["ok"=>false]);
}
dd($input);
}
只需在三元组中添加一个额外的比较,以确定
$horainical
是否与$agenda->hour\u end
匹配,返回false,例如:
return $agenda === null || $agenda->hour_end === $horaInicial
只要不存在议程,或者议程的结尾与议程的开头相匹配,那么我们将有一个有效的开始时间。解决了一个好问题!!它起作用了!问题2依然存在。谢谢你!