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

Laravel MongoDB中Carbon格式化日期显示异常问题求助

问题分析与解决方案

你遇到的问题核心是错误使用了Carbon的@时间戳解析符号,导致日期解析完全偏离预期。

为什么会出错?

MongoDB中存储的ISODate("2018-03-31T01:08:50.000+0000")是标准的ISO日期格式,而你代码里的@符号是Carbon专门用来解析**Unix时间戳(数字格式的秒数)**的标记。当你把@和ISO日期字符串拼接后,Carbon会把整个字符串当作数字来解析,自然会得到完全错误的日期结果(比如你看到的16-10-50214)。

正确的解决方法

Laravel配合MongoDB驱动(比如常用的jenssegers/laravel-mongodb)时,会自动将MongoDB的ISODate字段转换为Carbon实例,所以你不需要额外调用parse方法,直接格式化即可:

<td>{{ $item->time->format('d-m-Y H-i-s-e') }}</td>

如果因为某些原因$item->time不是Carbon实例(比如驱动配置问题),也只需要直接解析ISO日期字符串,去掉@符号:

<td>{{ Carbon\Carbon::parse($item->time)->format('d-m-Y H-i-s-e') }}</td>

验证结果

用你的示例ISODate测试,正确解析后会得到31-03-2018 01-08-50-+00:00,和MongoDB存储的日期完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:52:53