我有用于选择日期和时间的输入字段
<input type="datetime-local" class="form-control" id="game-date-time-text" name="game_date_time">
我正在尝试使用以下规则格式化它
'game_date_time' => 'required|date_format:Y-m-dTH:i'
当我在请求中查看此字段的值时,示例值看起来像这样
2001-03-13T13:30
我尝试过各种类型的日期时间格式,包括上面的那种,但我的输入值无法通过验证。这有什么问题?
任何帮助都将不胜感激。
答案 0 :(得分:1)
我试过这个并且有效。
'game_date_time' => 'required|date_format:"Y-m-d\TH:i"'
答案 1 :(得分:0)
试试这个
'game_date_time' => 'required|date_format:"Y-m-dTH:i"'
date_format格式必须位于双引号""
答案 2 :(得分:0)
您需要将data_format
规则置于双引号内。
'game_date_time' => 'required|date_format:"Y-m-dH:i"'
在此处阅读更多内容:https://laravel.com/docs/5.6/validation#rule-date-format
答案 3 :(得分:0)
好的,我想我得到了解决方案。首先,确保您的日期列为DATETIME
类型。假设你的date_time在模型中规则如下:
public static $date_rules = [
'game_date_time' => 'required|date_format:Y-m-dTH:i'
];
在您的控制器中,您获得date_time值的方法:
use Illuminate\Support\Facades\Validator;
public function postDate(Request $request, Role $role){
$datevalidator = Validator::make($request->all(), YourModel::$date_rules);
if ($datevalidator->fails()){
return Redirect::back()->withErrors($datevalidator)->withInput();
}// this 'if' checks the validation.
$game_date_time=$request->get('game_date_time');
return $game_date_time;
}
希望这有帮助。