使用Carbon createFromFormat解析ISO时间报错,求正确格式
解决Carbon解析ISO8601格式时间字符串的格式参数问题
你需要使用的格式参数是'Y-m-d\TH:i:s\Z',对应的正确代码如下:
Carbon::createFromFormat('Y-m-d\TH:i:s\Z', $stringData);
错误原因说明
- 目标时间字符串
"2020-09-17T14:08:59Z"是标准ISO8601格式,其中T是日期与时间的分隔字面量,Z代表UTC时区字面量。 - 你之前使用的
'Y-m-d H:i:s'格式存在两个问题:- 未匹配字符串中的
T和Z字面量 - 时间部分用空格分隔,但原字符串用
T分隔,导致格式分隔符不匹配,触发InvalidFormatException。
- 未匹配字符串中的
额外提示
如果不需要严格指定格式,也可以直接使用Carbon::parse($stringData),Carbon会自动识别ISO8601格式的时间字符串,代码更简洁。
内容的提问来源于stack exchange,提问作者Petro Gromovo
相关产品推荐
相关产品推荐

