datetime输入字段的值无法通过验证

时间:2018-05-24 06:46:11

标签: php laravel validation laravel-5 laravel-5.6

我有用于选择日期和时间的输入字段

<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

我尝试过各种类型的日期时间格式,包括上面的那种,但我的输入值无法通过验证。这有什么问题?

任何帮助都将不胜感激。

4 个答案:

答案 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;
}

希望这有帮助。