【发布时间】:2017-09-21 03:44:07
【问题描述】:
我很难理解 Laravel 如何处理日期和 Carbon。我有一个模型,它有一个名为 published_at 的特殊字段(它是 DATE 字段)。当我将实例保存为对象时,我希望 laravel 使用碳转换该字段。
这是我的模型:
<?php
namespace App;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
class Addon extends Model
{
// ...
protected $dates = [
'published_at'
];
// ....
/**
* Set the published_at date format
*
* @param $date
* @return string
*/
public function setPublishedAtAttribute($date)
{
$this->attributes['published_at'] = Carbon::createFromFormat('d/m/Y', $date);
}
// ....
}
因此,据我了解,published_at 字段现在应该使用 d/m/Y 格式保存为碳的实例。但是它在数据库中保存为 mm-dd-yyyy。
最后,我不在乎它是如何保存到数据库中的,所以这就是为什么我想创建一个getPublishedAtAttribute 并以我想要的格式检索它。那也没用。
我想要的只是 Laravel 将其格式化为 d/m/Y。无需我在每次展示时都执行{{ $addon->published_at->format('d/m/Y') }} 之类的操作。
顺便说一句:我希望 created_at 和 updated_at 也一样。任何想法我做错了什么?
Laravel 版本:5.3.31
【问题讨论】:
-
MySQL 以 'YYYY-MM-DD' 格式检索和显示 DATE 值。您可以在模型中创建一个 getter,以返回您希望它在视图中显示的格式。
标签: php laravel date laravel-5 php-carbon