我的查询使用时间戳,但日期时间给出错误

时间:2019-07-03 14:20:16

标签: datetime eloquent timestamp php-carbon laravel-5.8

我有一个包含以下各列的mysql表

名称|大黄酮|邮件| created_at

“日期”字段是日期类型

“ created_at”字段是时间戳类型

在我的控制器中,我有一种方法可以按日期对结果进行分组

$users = Post :: orderBy ('dateone') -> get () -> groupBy (function ($ item) {

 return $ item-> created_at-> format ('Y-m-d');

它可以工作,但是,当我替换

返回$ item-> created_at ->格式('Y-m-d');

作者

返回$ item-> 日期->格式('Y-m-d');

我遇到以下错误:

在字符串上调用成员函数format()

是否有通过Carbon或其他解决方案来解决我的问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

是,默认情况下, created_at updated_at 位于Carbon Instance中。您可以将dateone解析为carbon实例,将它用作created_at。

$convertedDateOne = null;
if(!empty($item->dateone)){
    $convertedDateOne = Carbon::parse($item)->format('Y-m-d');
}

如果您希望每次将dateone都作为Carbon的实例,则可以在模型中cast in the datetime format

假设模型名称为Item.php

class Item extends Model{
   protected $dates = ['dateone'];
}