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

Php Laravel Carbon,如何格式化以比较日期时间?,php,laravel,datetime,php-carbon,Php,Laravel,Datetime,Php Carbon,我正在开发一个预订应用程序,我从一个用户那里得到一个开始和结束(datetime),并检查这段时间(开始和结束)是否与数据库列(开始和结束)相交,因此我需要将Input['start']和Input['end']与数据库进行比较,因此我使用了Carbon::create($inputstart)->在($start,$end)之间但它总是给出错误“意外数据”和“跟踪数据” 以下是检查和存储输入的控制器方法 public function store(Request $request,$yard,

我正在开发一个预订应用程序,我从一个用户那里得到一个开始和结束(datetime),并检查这段时间(开始和结束)是否与数据库列(开始和结束)相交,因此我需要将
Input['start']
Input['end']
与数据库进行比较,因此我使用了
Carbon::create($inputstart)->在($start,$end)之间但它总是给出错误“意外数据”和“跟踪数据”

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

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”传递datetime格式,以便Carbon可以进行“之间”比较?

看起来您已经为$end变量创建了Carbon实例

$end = Carbon::parse($end);
所以,如果您想确定$end是否在$bstart和$bend之间,那么您希望您的行如下所示

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

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

看起来您已经用行为$end变量创建了碳实例

$end = Carbon::parse($end);
所以,如果您想确定$end是否在$bstart和$bend之间,那么您希望您的行如下所示

$end->between($bstart, $bend);
如果这不起作用,
dd($end)
以及
dd($bstart)
dd($bend)
,以确保它们都是碳物体。

感谢您的回答@BeshoyTamry请奖励他,作为对这个超级答案的感谢@请把他奖励为