【问题标题】:Laravel time validation (hours:seconds)Laravel 时间验证(小时:秒)
【发布时间】:2021-07-16 13:46:31
【问题描述】:

尝试验证有效的 24 小时时间。

请求转储,

#parameters: array:6 [▼
    "_token" => "mP2b6fmvlQG6SMgMwz9VI9kZEXtjXqp7hXUjdWdZ"
    "email" => null
    "ageLimit" => null
    "timeFrom" => "0:00"
    "timeTo" => "0:00"
    "alowed_days" => array:7 [▶]
]

控制器验证

$validation = $request = $request->validate([
    'email' => 'email|required',
    'ageLimit' => 'required|numeric',
    'timeFrom' => 'date_format:H:i',
    'timeTo' => 'date_format:H:i',
)];

由于某种原因失败了?我收到“来自的时间与格式 H:i 不匹配。”

我不明白什么?

【问题讨论】:

  • 验证失败的部分。在我看来,电子邮件和 ageLimit 也不会验证

标签: php laravel


【解决方案1】:

从这里:http://php.net/manual/en/function.date.php

G 小时的 24 小时格式,不带前导零 0 到 23
...
H 小时的 24 小时格式,前导零 00 到 23

0:00 中的小时值没有前导零,因此 H 不会匹配。 date_format:G:i 应该可以工作。

【讨论】:

    【解决方案2】:

    来自the docs

    H 24 小时格式,带前导零的小时

    i 分钟,前导零

    G 24 小时制的小时格式,不带前导零

    意味着您应该将"timeFrom" => "0:00" 更改为"timeFrom" => "00:00" 或使用G 而不是H

    【讨论】:

      猜你喜欢
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2020-07-10
      • 2015-02-20
      • 1970-01-01
      • 2012-06-15
      • 2017-01-20
      相关资源
      最近更新 更多