在Laravel 5中使用自定义时间戳会返回错误

时间:2016-03-03 16:18:21

标签: php laravel timestamp eloquent

所以在我的迁移中我添加了一个列:

$table->timestamp('due_at');

然后我允许用户为任务设置截止日期,但是当我尝试执行时:

$task->due_at->diffForHumans()

我收到此错误

  

在字符串

上调用成员函数diffForHumans()

我的自定义时间戳与created_atupdate_at具有完全相同的格式,但它会返回错误。

我该怎么做才能解决这个问题?提前谢谢。

2 个答案:

答案 0 :(得分:6)

你还需要在模型中声明它,否则Laravel将不知道它是一个Carbon实例。例如:

protected $dates = ['created_at', 'updated_at', 'due_at'];

这里有一些文档:https://laravel.com/docs/5.1/eloquent-mutators#date-mutators

答案 1 :(得分:2)

试试这个:

Carbon::parse($task->due_at)->diffForHumans()