2017-05-01 17 views
0

$pickUpDateの日付を検証する際に問題があります。今日の日付を選択して送信するとエラーが表示されます:Pick-up: today or future date onlyカーボン - 今日または将来の日付のみ

私は今日または将来の日付のみを使用することができます。今日の日付よりも遅くするべきではありません。 today()として

public function withValidator($validator) 
{ 
    $validator->after(function ($validator) { 
     $pickUpDate = Carbon::createFromFormat('D j M Y', $this->pickup_date); 
     $dropOffDate = Carbon::createFromFormat('D j M Y', $this->dropoff_date); 

     $todayDate = Carbon::now(); 

     if (!$pickUpDate->gte($todayDate)) { 
      $validator->errors()->add('pickup_date', 'Pick-up: today or future date only'); 
     } 
    }); 
} 
+0

if文の直前に、$ pickUpDateと$ todayDateの値をダンプします。 PickUpDateの時間、分、秒がCarbon :: now()が現在の時刻を表示している真夜中に表示されているような気がします。 Carbon :: now()の代わりにCarbon :: today()にスワップする必要があるかもしれません。 –

答えて

2

あなたが最後に->endOfDay()を追加する必要があります今日の開始時刻を返します。

Carbon::now()->endOfDay(); 

または分を追加します。あなたの場合

Carbon::now()->addMinutes(5); 

この時間が過ぎている場合は、関数ウィッヒチェックでnow()を追加しています。この関数はチェックに時間がかかります(おそらくミリ秒)ので、falseを返します。あなたの今のカーボン物体に1分を加えても問題ありません。

関連する問題