私は予約アプリケーションに取り組んでいます。ユーザから開始時刻と終了時刻(datetime)を取得し、この期間(開始&終了)がデータベース列(begin &終了)と交差するかどうかを確認するため、Input['start']
とInput['end']
データベースと、私はCarbon::create($inputstart)->between($start ,$end));
を使用しますが、それはalwayesがerroresを与える「予期しないデータ」&「後続データ」ここLaravel Carbon、datetimeを比較するための書式設定方法
は、私はまた、データベース列を宣言
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'];
私はCarbonフォームとデータベース "datetime"からdatetime形式を渡してCarbonが "between"比較を行う方法を教えてください。
ありがとう@MMMTroy、それは働いた –
ありがとう[MMMTroy](http://stackoverflow.com/a/41002733/3452348)このsuperbeの答えです。 @ BeshoyTamryは[受け入れられた回答](http://meta.stackexchange.com/a/5235/294451)として彼に賞を与えてください。 – Zl3n