2017-05-01 56 views
0

我在驗證$pickUpDate日期時遇到問題。當我今天選擇日期並提交時 - 我收到一個錯誤:我得到一個錯誤:Pick-up: today or future date only碳 - 僅限今天或未來日期

它應該允許我僅使用今天或將來的日期。它不應該允許少於今天的日期。

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 :: today()而不是Carbon :: now()。 –

回答

2

由於today()將返回從今天開始的時候你就需要在末尾添加->endOfDay()

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

或加分:

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

在你的情況,你是在功能至極檢查添加now()如果這個時候已經過去。由於此函數需要時間來檢查(也許毫秒),它將返回false。將1分鐘添加到您現在的碳對象,它會很好。