Laravel 4.2 - 将时间添加到时间戳
Posted
技术标签:
【中文标题】Laravel 4.2 - 将时间添加到时间戳【英文标题】:Laravel 4.2 - Adding time to timestamp 【发布时间】:2015-03-09 12:54:27 【问题描述】:在 Laravel 4.2 中,当在数据库中创建记录时,使用 eloquent,我们可以创建 created_at 和 updated_at 时间戳。
我想在我正在使用的名为expires
的表中添加第三列,并且我想将该列的值设置为created_at + 72 hours
有没有“Laravel”的方式来做到这一点?访问 created_at 值?或者我应该以不同的方式处理这个问题?
【问题讨论】:
【参考方案1】:Laravel 的 created_at
是 Carbon 的一个实例。使用访问器,我们可以像这样填充$model->expires
:
public function getExpiresAttribute()
$expires = clone $this->created_at;
$expires->addHours(72);
return $expires;
如果您希望能够针对该值查询(而不仅仅是计算以供显示),则需要将其存储在数据库中。要让它自动填充,你可以告诉 Laravel 它是一个日期列并使用观察者:
public function getDates()
return ['created_at', 'updated_at', 'expires'];
public static function boot()
parent::boot();
self::creating(function($model)
$model->expires = clone $model->created_at;
$model->expires->addHours(72);
【讨论】:
谢谢。我不知道我可以这么容易地增加时间。这帮助很大:) @GRowing Laravel 使用github.com/briannesbitt/Carbon,这太棒了。 我花了一天时间阅读文档。绝对棒极了!并且及时(相对于我的项目),所以我不会去做 Carbon 已经做过的各种不必要的工作。以上是关于Laravel 4.2 - 将时间添加到时间戳的主要内容,如果未能解决你的问题,请参考以下文章
Redshift - 将时区偏移量(Varchar)添加到时间戳列