2016-09-13 167 views
0

我想驗證Laravel中的時間。例如: - 我希望當用戶輸入晚上8點到晚上10點之間的時間時,它會顯示驗證錯誤。我怎樣才能在Laravel中實現這一點如何在laravel中驗證時間

+0

你需要在那裏使用'rule'。這裏是你可以遵循的例子。 [https://laracasts.com/discuss/channels/laravel/laravel-validation-for-time-formats] – Manish

+0

您也可以使用@Umbert P.鏈接。這也可以幫助您驗證時間段。這裏是另一個鏈接[http://stackoverflow.com/questions/33685161/laravel5-1-validate-time-field-start-time-should-be-greater-than-end-time] – Manish

回答

0

你可能應該看看this位的文件。自定義規則聽起來像你要走的路。

+0

我知道,但我想知道這個時候的邏輯如何驗證 – Vikash

+0

看看這個:http://carbon.nesbot.com/ 然後,你可以輕鬆地使用時間。例如: $ dt = Carbon :: parse('2012-9-5 23:26:11.123789'); var_dump($ dt-> hour); –

1

試試這個代碼

use Validator; 
use Carbon\Carbon; 


$timeHours = "7:00 PM";//change it to 8:00 PM,9:00 PM,10:00 PM it works 
$time = Carbon::parse($timeHours)->format('H'); 


$request['time'] = $time; 
$validator = Validator::make($request->all(), [ 
    'time' => ['required','integer','between:20,22'] 
]); 


if ($validator->fails()) { 
    dd($validator->errors()); 
} 

enter image description here

9

也許這代碼將在您的控制器正常工作。但是它不會驗證不同日期的時間(例如,下午9點 - 第二天凌晨3點)。 time_starttime_end在這種情況下應該提供爲HH:mm但您可以輕鬆更改它。

public function store(Illuminate\Http\Request $request) 
{ 
    $this->validate($request, [ 
     'time_start' => 'date_format:H:i', 
     'time_end' => 'date_format:H:i|after:time_start', 
    ]); 

    // do other stuff 
} 
0

使用DATE_FORMAT規則驗證

date_format:H:i 

從文檔

date_format:format 

場下的驗證必須按照date_parse_from_format PHP函數定義的格式相匹配。