针对特定格式的laravel中的格式验证

时间:2016-12-29 13:21:09

标签: php datetime laravel-5.3 datetime-format

我正在尝试在我的laravel应用程序中进行date_format验证。它是一个api并以

格式获取日期时间
2015-10-09T12:36:576+01:00

它应该是IOS 8601格式,所以我根据格式检查它  "Y-m-d\TH:i:sO"使用

'createdAt'  => "required|date_format:Y-m-d\TH:i:sO",

但验证失败了。我很确定我的日期格式错误(我从官方的php文档中得到的意思是数据的格式不是ISO 8601)。有人可以告诉我这个日期是什么格式吗?

由于

2 个答案:

答案 0 :(得分:0)

您的日期格式以+01:00结尾。您正尝试匹配类型O,即+0100(不带冒号)

请参阅此处的格式规范。

RL1.7

在laravel中出现了什么样的混乱,它会创建一个能够准确读取日期的日期对象,但之后会尝试将其渲染回您指定的格式(删除{{1}然后将它与原始版本进行比较,这显然是不同的:

http://php.net/manual/en/function.date.php

这是一个问题,因为从技术上讲,这两种格式都符合ISO 8601标准。

答案 1 :(得分:0)

刚才有同样的问题。对"Y-m-d\TH:i:sP"进行检查对我有用。

来自PHP Docs

P :与格林威治标准时间(GMT)的时差为小时和分钟之间(PHP 5.1.3中已添加)