You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决用PHP-Carbon转换datetime-local日期格式失败的问题?

解决Carbon转换datetime-local格式失败的问题

嘿,我一眼就瞅出问题所在啦!你在createFromFormat里用的格式符不对——Carbon遵循的是PHP原生date()函数的格式规则,可不是你写的yyyy这种其他库的写法哦。

错误原因拆解

你原来的代码里用了yyyy-MM-ddTh:mm,这里踩了好几个小坑:

  • 四位年份的正确格式符是Y,而不是yyyy(yyyy是Java这类工具的写法)
  • 分钟的格式符是i,不是mm(mm在Carbon里代表两位数字的月份)
  • 那个T是字面量分隔符,直接写的话Carbon会把它当成时区缩写的格式符,所以得用\T转义一下

正确的写法

第一种方式,手动指定精准的格式:

\Carbon\Carbon::createFromFormat('Y-m-d\TH:i', $this->start_date)->format('Y-m-d H:i:s');

如果你嫌手动写格式麻烦,还有更省心的办法——用parse方法,Carbon能自动识别这种ISO标准的日期格式:

\Carbon\Carbon::parse($this->start_date)->format('Y-m-d H:i:s');

举个实际例子,如果你的$this->start_date是2024-06-10T14:25,上面两种方法都会输出2024-06-10 14:25:00,完全符合你的需求~

内容的提问来源于stack exchange,提问作者Faid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:02:42