在laravel 4中,我有很多具有日期类型和日期时间的数据库字段。但我需要显示日期格式,如dd / mm / yy H:i:s喜欢任何格式,还必须处理插入和更新时的日期形成。他们是否可以在一个地方获得作品?
答案 0 :(得分:1)
是的,您可以通过在模型中创建mutator
方法来实现这一目标;例如,如果您拥有Post
模型并且具有date_of_birth
属性,并且您希望在yyyy/mm/dd H:i:s
中设置日期,但用户可能会以不同的格式提供日期。在这种情况下,在mutator
模型中创建一个Post
方法,如下所示:
public function setDateOfBirthAttribute($value)
{
// value will be the given date by user
$dt = \Carbon\Carbon::createFromFormat('Y/m/d H:i:s',$value)->toDateString();
$this->attributes['date_of_birth'] = $dt;
}
要访问日期,只需创建一个accssor
方法,例如:
public function getDateOfBirthAttribute()
{
return \Carbon\Carbon::createFromFormat('d-m-Y H:i:s', $this->date_of_birth);
}
现在date_of_birth
将使用您在mutator
方法中使用的格式插入,当您显示该日期时,它将使用以下格式显示您已在accessor
方法中使用过。您也可以查看Date Mutators。
答案 1 :(得分:0)
日期必须包含碳。请查看GitHub上的文档:https://github.com/briannesbitt/Carbon