Laravel created_at return 对象代替数据库中的日期格式?
Laravel created_at return object in place of date format in database?
我正在尝试 return created_at
用户 table 在 JSON 响应中的日期时间 Laravel。
在我的数据库中,它显示的值为
2016-07-18 00:00:00
但是当我在 JSON api 中尝试 return 时,它会转换为
{
date: "2016-07-18 00:00:00.000000",
timezone_type: 3,
timezone: "UTC"
}
我该如何解决这个问题?
您在 Laravel 框架中有 Carbon
可以帮助您使用以下代码根据需要制作日期时间。
$created_at = new Carbon($value)->toDateTimeString();
现在在 created_at
处传递 $created_at
。
用户示例代码 table(注意:未测试请自行检查是否需要传递对象或数组)
$user = User::find(1);
$user->created_at = new Carbon($user->created_at)->toDateTimeString();
默认情况下 created_at
和 updated_at
是 Carbon
对象,所以你可以这样做:
$object->created_at->toDateTimeString();
再次获取格式 Y-m-d H:i:s
您可以通过添加 serializeUsing
方法来更改该行为 在您的 AppServiceProvider
class 中更新日期的 json 序列化格式,它只会影响 api调用(docs),这里是一个例子:
use Illuminate\Support\Carbon;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Carbon::serializeUsing(function ($carbon) {
return $carbon->format('Y-m-d H:i:s');
});
}
...
}
既然你想得到JSON响应,你可以使用Eloquent API Resource将Carbon对象转换成任何格式,例如:
return [
'created_at' => $this->created_at->toDateTimeString(),
....
];
我正在尝试 return created_at
用户 table 在 JSON 响应中的日期时间 Laravel。
在我的数据库中,它显示的值为
2016-07-18 00:00:00
但是当我在 JSON api 中尝试 return 时,它会转换为
{
date: "2016-07-18 00:00:00.000000",
timezone_type: 3,
timezone: "UTC"
}
我该如何解决这个问题?
您在 Laravel 框架中有 Carbon
可以帮助您使用以下代码根据需要制作日期时间。
$created_at = new Carbon($value)->toDateTimeString();
现在在 created_at
处传递 $created_at
。
用户示例代码 table(注意:未测试请自行检查是否需要传递对象或数组)
$user = User::find(1);
$user->created_at = new Carbon($user->created_at)->toDateTimeString();
默认情况下 created_at
和 updated_at
是 Carbon
对象,所以你可以这样做:
$object->created_at->toDateTimeString();
再次获取格式 Y-m-d H:i:s
您可以通过添加 serializeUsing
方法来更改该行为 在您的 AppServiceProvider
class 中更新日期的 json 序列化格式,它只会影响 api调用(docs),这里是一个例子:
use Illuminate\Support\Carbon;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Carbon::serializeUsing(function ($carbon) {
return $carbon->format('Y-m-d H:i:s');
});
}
...
}
既然你想得到JSON响应,你可以使用Eloquent API Resource将Carbon对象转换成任何格式,例如:
return [
'created_at' => $this->created_at->toDateTimeString(),
....
];