Php 拉维全日历

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

我在做预订系统。。。我有以下问题:

例如,人们可以在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

他说日程安排已经很忙了,但他没有拿今天和我比较

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依然存在。谢谢你!