Laravel Carbon,如何格式化比较日期时间?

Laravel Carbon, How to format to compare datetime?

我正在开发一个预订应用程序,我从用户那里得到开始和结束(日期时间)并检查这个时间段(开始和结束)是否与数据库列(开始和结束)相交所以我需要比较Input['start']Input['end'] 与数据库,所以我使用 Carbon::create($inputstart)->between($start ,$end)); 但它总是给出错误 "Unexpected data" & "Trailing data"

这是检查和存储输入的控制器方法

public function store(Request $request,$yard,$court)
{
    $start =$request->input("start");
    $end =$request->input("end");
    $courtCalendar = CalendarEvent::where('court_id',$court)->get();
    $start= Carbon::parse( $start);
    $end = Carbon::parse($end);
    foreach ($courtCalendar as $booked) {    
       $bend= Carbon::parse($booked->end);  
       $bstart= Carbon::parse($booked->start);
       dd(Carbon::create($end)->between($bstart ,$bend));
        if (!Carbon::create($start)->between($bstart ,$bend)){
            if (!Carbon::create($end)->between($bstart ,$bend)) {
    $calendar_event = new CalendarEvent();
    $calendar_event->user_id          = Auth::user()->id;   
    $calendar_event->court_id         = $court; 
    $calendar_event->title            = $request->input("title");
    $calendar_event->start            = $start;
    $calendar_event->end              = $end;
    $calendar_event->status           = 0;
    $calendar_event->save();
    return redirect()->back()
    ->with(['header'=>'Success!','class' =>'alert alert-success','message'=> 'booked successfully.',
        'calendar'=>$calendar_event]);
            }else
            {return redirect()->back()
                ->with(['header'=>'Warning!','class' =>'alert alert-warning','message'=> 'cannot book at this time end time is occupied']);}
        }else
            {return redirect()->back()
                ->with(['header'=>'Warning!','class' =>'alert alert-warning','message'=> 'cannot book at this time start time is occupied']);}
    }
}

我还将模型中的数据库列声明为日期

protected $dates = ['start', 'end'];

如何从 HTML 表单和数据库 "datetime" 传递日期时间格式,以便 Carbon 可以进行 "between" 比较?

看起来您已经使用行

为 $end 变量创建了 Carbon 实例
$end = Carbon::parse($end);

因此,如果您想确定 $end 是否在 $bstart 和 $bend 之间,那么您希望您的行看起来像这样

$end->between($bstart, $bend);

如果这不起作用,dd($end) 以及 dd($bstart)dd($bend) 以确保它们都是 Carbon 对象。