【发布时间】:2019-06-29 03:51:10
【问题描述】:
我有一个只包含时间的数据库字段,它在我的迁移中声明为
$table->time('time')->default('00:00:00');
现在我想使用 Eloquent 为该字段添加秒数,例如:
$activetime->time->add(new DateInterval('PT5S'));
(其中 $activetime 是 Eloquent 模型的对象)
第一次尝试这个我得到了
Call to a member function add() on string
所以很明显我必须告诉 Eloquent 这不是一个字符串而是一个时间。我得到的最接近的是将它放在模型中受保护的 $dates 中,但后来我得到了
Unexpected data found.
我怀疑这是因为它不是真正的日期,而只是一个时间,但我似乎找不到太多关于如何处理时间的信息。有什么方法可以解决这个问题,或者我最好使用其他东西,比如 dateTime 或时间戳(甚至是秒数的整数)?我想要记录的是用户在给定日期的活动时间,因此为此目的,时间似乎是自然的选择......
【问题讨论】:
-
你需要什么时间来投稿?你有时间对象吗?
-
格式化 $activetime->time 然后加上你的秒数。
-
如果您的模型没有任何其他日期字段,那么您可以将以下内容添加到模型中。
public $timestamps = false; protected $dateFormat = 'H:i:s'; protected $dates = [ 'time', ]; -
嗯,我有内置的时间戳字段(created_at,updated_at),我猜他们会受此影响?
标签: laravel laravel-5 eloquent laravel-5.7