2017-05-01 3 views
0

Ich habe Probleme mit der Validierung der $pickUpDate Datum. Wenn ich heute Datum auswähle und absende - erhalte ich einen Fehler: Pick-up: today or future date onlyCarbon - heute oder in der Zukunft nur

Es sollte mir erlauben, heute oder zukünftiges Datum nur zu verwenden. Es sollte nicht weniger als heute Datum erlauben.

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

Kurz vor Ihrer if-Anweisung die Werte $ pickUpDate und $ todayDate ausgeben. Ich habe das Gefühl, dass die Stunden, Minuten und Sekunden im PickUpDate um Mitternacht angezeigt werden, wo Carbon :: now() die aktuelle Uhrzeit anzeigt. Möglicherweise müssen Sie anstelle von Carbon :: now() zu Carbon :: today() wechseln. –

Antwort

2

Als today() kehrt Zeit von heute beginnen Sie müssen ->endOfDay() am Ende hinzuzufügen.

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

oder füge Minuten:

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

In Ihrem Fall, fügen Sie now() in der Funktion Weicht überprüft, ob diese Zeit vorbei ist. Da diese Funktion Zeit benötigt, um zu überprüfen (möglicherweise Millisekunden), wird false zurückgegeben. füge deinem jetzigen Kohlenstoffobjekt eine Minute hinzu und es wird gut.

Verwandte Themen