環境:
jensseger/laravel-mongodb@3.7.0
Moloquentを使用したmodelは、DB上にはデフォルトの設定ではMongoDB\BSON\UTCDatetimeで保管されている。
しかしキーにアクセスすると…
↑
timezoneがAsia/Tokyoで返るのはlaravelのconfig/app.phpでtimezone, localeをそれぞれAsia/Tokyo、ja に設定しているから。(設定後はphp artisan config:clearで反映)
Carbonで返ってくる。
例えばXXXX年XX月XX日という風に加工したければ、
return $o['created_at']->format('Y年m月d日');
これらを加味して…
$user = User::first();
// この時点ではBSON
$user['created_at'] = $user['created_at']->format('Y年m月d日');
return $user;
となりエラーなので
$user['created_at_formatted'] = $user['created_at']->format('Y年m月d日');
unset($user['created_at']);
return $user;
ref: