我想知道是否有一个简单的解决方案可以覆盖 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;
})
您可以使用get更改模型中的日期时间。署名:
public function getStartAttribute($date)
{
return $date->getTimestamp();
}
如果$date
是碳对象,则应使用$date->timestamp
或者,您可以覆盖模型上的所有时间戳:
protected function getDateFormat()
{
return 'U'; //U = Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)
}
Laravel's Eloquent 为日期和时间字段返回一个 Carbon 对象。
您应该能够在整个代码中使用 Carbon 对象的时间戳属性,不确定这对您来说是否更容易,但可能比修改模型以适应您的特定用例更理想。
$mission->start->timestamp
看起来您正在将模型的属性直接转换为 JSON,因此更改模型(WesleyE 的解决方案)可能最适合您。