Php laravel中针对特定格式的时间格式验证

Php laravel中针对特定格式的时间格式验证,php,datetime,laravel-5.3,datetime-format,Php,Datetime,Laravel 5.3,Datetime Format,我正在尝试在我的laravel应用程序中进行日期格式验证。它是一个api,并以以下格式获取datetime 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文档中得到的,这意味着数据的格式不是ISO8601)。有人能告诉我

我正在尝试在我的laravel应用程序中进行日期格式验证。它是一个api,并以以下格式获取datetime

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文档中得到的,这意味着数据的格式不是ISO8601)。有人能告诉我日期是什么格式的吗


谢谢

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

请参见此处的格式规格

在laravel中有点混乱,它创建了一个能够准确读取日期的日期对象,但随后它尝试将其还原为您指定的格式(删除
),然后将其与原始数据进行比较,这显然是不同的:


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

刚才也有同样的问题。检查
“Y-m-d\TH:i:sP”
对我很有用

从:

p:与格林威治时间(GMT)的差值,小时与分钟之间带有冒号(在PHP 5.1.3中添加)


这可能是正则表达式,如果这是一个愚蠢的问题,我通常必须在验证数组之外定义它们,但为什么秒值有3个数字?@RossWilson yeah似乎提供的格式是错误的(因为数字值是错误的)。正确的格式应该是2015-10-09T12:36:57+01:00对我来说也很有用!