我想知道是否有一个简单的解决方案来覆盖Laravel / Lumen默认值以返回unix时间戳而不是返回模型时的实际日期。
"mission": {
"id": 1,
"start": "2016-01-17 13:57:12",
"end": "2016-02-17 00:00:00",
"salary": "1000",
"description": "Lorem ipsum dipsum chipsum, wipsum dodaskipsum wawipsum. Badatiss dum"
}
现在我必须始终将日期时间戳转换为unix时间戳,无论我想在哪里使用它们(无处不在)。
例如:
$result = Mission::all()
->map(function ($mission) {
$mission->start = $this->toTimestamp($mission->start);
$mission->end = $this->toTimestamp($mission->end);
return $mission;
})
答案 0 :(得分:3)
您可以使用get..Atribute:
mutate模型中的日期时间public function getStartAttribute($date)
{
return $date->getTimestamp();
}
如果$date
是Carbon对象,则应使用$date->timestamp
或者您可以覆盖模型上的所有时间戳:
protected function getDateFormat()
{
return 'U'; //U = Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
}
答案 1 :(得分:1)
Laravel的Eloquent为日期&返回了一个Carbon对象。时间领域。
您应该能够在整个代码中使用Carbon对象的timestamp属性,不确定这对您来说是否更容易,但可能比修改模型更适合您的特定用例。
$mission->start->timestamp
您似乎将Model的属性直接转换为JSON,因此更改Model(WesleyE' s解决方案)可能最适合您。