Return int 时间戳而不是 datetime
Return int timestamps instead of datetime
我想知道是否有一个简单的解决方案来覆盖 Laravel/Lumen 默认为 return unix 时间戳而不是 returning 模型时的实际日期。
"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;
})
您可以 mutate 使用 get..Atribute:
模型中的日期时间
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)
}
Laravel 的 Eloquent returns 用于日期和时间字段的 Carbon 对象。
您应该能够在整个代码中使用 Carbon 对象的时间戳 属性,不确定这对您来说是否更容易,但可能比修改模型以适合您的特定用例更理想。
$mission->start->timestamp
看起来您正在将模型的属性直接转换为 JSON,因此更改模型(WesleyE 的解决方案)可能最适合您。
我想知道是否有一个简单的解决方案来覆盖 Laravel/Lumen 默认为 return unix 时间戳而不是 returning 模型时的实际日期。
"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;
})
您可以 mutate 使用 get..Atribute:
模型中的日期时间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)
}
Laravel 的 Eloquent returns 用于日期和时间字段的 Carbon 对象。
您应该能够在整个代码中使用 Carbon 对象的时间戳 属性,不确定这对您来说是否更容易,但可能比修改模型以适合您的特定用例更理想。
$mission->start->timestamp
看起来您正在将模型的属性直接转换为 JSON,因此更改模型(WesleyE 的解决方案)可能最适合您。