为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel - 日期格式验证未按预期工作

Laravel - 日期格式验证未按预期工作

PHP
红颜莎娜 2022-07-16 16:08:35
我的代码:$data['from'] = '2020-03-20 20:30:00';$data['to'] = '2020-03-21 00:45:00';$validity = \Validator::make($data, [    'from' => ['date_format:Y-m-d H:i:s'],    'to' => ['date_format:Y-m-d H:i:s']]);// This if gets true, and the error message is:to 与格式 Ymd H:i:s 不匹配if($validity->fails()) {    dd($validity->errors());}令人惊讶的是,当我改变它时00:45:00,01:45:00它并没有进入那个 if。我该如何解决?
查看完整描述

2 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

由于您的语言环境设置为Asia/Tehran时间2020-03-21 00:45:00实际上是无效的。根据https://www.timeanddate.com/time/change/iran/tehran

2020 年 3 月 21 日星期六,00:00:00 时钟将调拨 1 小时至 2020 年 3 月 21 日星期六,01:00:00 当地时间。

这意味着 00:00:00 和 01:00:00 之间的时间永远不会出现。由于 Laravel 日期验证器在内部使用 PHP 的日期解析,因此解析失败并引发错误。如果您只想检查日期是否为给定格式而忽略任何夏令时怪癖,那么您可以使用date_default_timezone_set临时将语言环境设置为不遵守夏令时的语言环境。



查看完整回答
反对 回复 2022-07-16
?
慕慕森

TA贡献1856条经验 获得超17个赞

尝试


$validity = \Validator::make($data, [

    'from' => 'date_format:Y-m-d H:i:s',

    'to' => 'date_format:Y-m-d H:i:s'

]);


查看完整回答
反对 回复 2022-07-16
  • 2 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号