Laravel Eloquent 数据查询结果中日期的格式化

两种情况:

使用 Model 的查询

例如:

$item = App\Models\Apple::first();
$date = $item->created_at->format('Y-m-d');

使用 DB::table 的查询

如果直接对结果中的 datetime 做 format,会报错

Call to a member function format() on string

因为 DB::table 返回的结果都是 string,没有关联 Model。当然各种定义好的自动转换也会失效。

这时候就需要先解析,再格式化

Carbon\Carbon::parse($item->expired_at)->format('Y-m-d')

最佳方案

所以,尽量使用 Model 进行数据查询操作,避免使用 DB::table.

即使是使用 leftJoin 这些操作,也可以是 Model 进行。虽然官方文档一直在用 DB::table.

例如:

$case->progress_detail = ProjectProgress::leftJoin('users', 'project_progress.pm_id', '=', 'users.id')
                ->select('project_progress.*', 'users.name')
                ->where('project_progress.id', $case->id)
                ->first();

转载于:https://www.cnblogs.com/sgm4231/p/10195865.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值