2017-12-26 22 views
1

Laravel의 JSON 응답에서 users 테이블의 created_at datetime을 다시 실행하려고합니다. 내 databaes에서데이터베이스의 날짜 형식 대신 Laravel created_at retrun 개체가 필요합니까?

2016-07-18 00:00:00로 값을 표시하지만 JSON API의 반환하려고 할 때 내가이 문제를 해결할 수있는 방법

{ 
    date: "2016-07-18 00:00:00.000000", 
    timezone_type: 3, 
    timezone: "UTC" 
} 

으로 변환합니다.

+0

코드를 공유하십시오. –

답변

2

Laravel 프레임 워크에서 carbon을 사용하면 아래 코드로 원하는대로 날짜 시간을 지정할 수 있습니다.

 $created_at = new Carbon($value)->toDateTimeString(); 

지금 created_at의 장소에서 $created_at를 전달합니다. 사용자 테이블에 대한 예제 코드 (참고 : 테스트되지는 객체 나 배열을 전달해야한다는 자신을 확인하시기 바랍니다)

 $user = User::find(1); 
     $user->created_at = new Carbon($user->created_at)->toDateTimeString(); 
기본 created_at으로
0

updated_atCarbon 개체를, 그래서 당신은 할 수 있습니다 :

$object->created_at->toDateTimeString(); 

Y-m-d H:i:s

0

당신은 t을 업데이트 AppServiceProvider 클래스에서 serializeUsing 방법을 추가하여 그 동작을 변경할 수 있습니다 형식으로 다시 얻으려면 그는 여기에, 그것은 단지 (docs를) API 호출에 영향을주는 것, 날짜 직렬화 형식을 JSON 예입니다 : 당신은 JSON 응답을 얻으려면 때문에

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'); 
     }); 
    } 

    ... 

} 
0

, 당신은 예를 들어, 어떤 형식으로 탄소 객체를 변환하는 Eloquent API Resource을 사용할 수 있습니다 :

return [ 
    'created_at' => $this->created_at->toDateTimeString(), 
    .... 
];