【问题标题】:Laravel: convert input text into date to validate with "after"Laravel:将输入文本转换为日期以使用“之后”进行验证
【发布时间】:2016-04-19 19:29:48
【问题描述】:

我正在使用Bootstrap 3 Datetimepicker 从表单中获取日期时间:

{!! Form::text('somedate', null, array('class' => 'datetimepicker', 'id' => 'somedate')) !!}

Datetimepicker 插件需要文本输入类型才能工作。如果我将其更改为日期输入类型,插件将无法正常工作。

所以,在我的控制器上,我正在做一些验证:

$validator = Validator::make($request->all(), [                 
  'somedate' => 'required|after:tomorrow',

这不起作用,因为“之后”验证需要日期输入类型。如何在验证之前将我的文本字段转换为控制器上的日期?

【问题讨论】:

    标签: php validation laravel


    【解决方案1】:

    尝试在after 规则之前将date 规则添加到这些规则中。

    'somedate' => 'required|date|after:tomorrow'
    

    如果您需要使用特定格式,也可以使用date_format 规则而不是date

    Laravel 5.2 - Validation - Rule After

    【讨论】:

    • 我更改为 'required|date|after:tomorrow',但它仍然无法验证我的日期。也许我的日期时间输入格式干扰了。我正在使用 dd/mm/YYYY。我应该在验证之前在我的控制器上转换它吗?
    • 您可能需要更改帖子中发送的格式,或者尝试使用date_format 规则而不是date
    • 我将其更改为 'required|date_format:"dd/mm/yyyy hh:ii"|after:now',但是当我选择 13/01/2016 11:10 时,验证表明我的输入不是 dd/mm/yyyy hh:ii 格式。
    • 我明白了。我正在使用 'required|date_format:"d/m/Y H:i"|after:now' 效果很好。
    猜你喜欢
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2018-06-11
    • 1970-01-01
    • 2014-04-02
    相关资源
    最近更新 更多