Laravel Validator使用date_format规则验证日期时间格式失败问题
Laravel date_format验证日期时间格式失败的解决办法
你遇到的问题是小时格式字符使用错误导致的:你的表单输入日期时间格式为30/12/2023 11.52.18,使用date_format:dd/mm/yyyy h.i.s验证始终提示无效,原因如下:
h是PHP日期格式中12小时制的小时标识(取值范围01-12),如果你的时间是24小时制(比如13:52这类超过12的小时数),就会匹配失败;- 若你的时间属于24小时制(无AM/PM标识的场景大多是24小时制),应该用
H作为小时的格式字符;另外dd可简化为d,yyyy可写成Y,功能完全一致。
正确的验证规则示例:
// 24小时制场景(推荐,适配无时段标识的时间) 'your_date_field' => 'required|date_format:d/m/Y H.i.s',
如果确认是12小时制且时间值在01-12范围内,也可以保留h,但这种场景因缺少时段标识容易产生歧义,不建议使用。
Laravel的date_format规则完全遵循PHP的日期格式规范,不清楚格式字符的话可以参考PHP官方的日期格式说明。
内容的提问来源于stack exchange,提问作者Guswah 88
相关产品推荐
相关产品推荐

