오랜만에 포스팅… 부동산 문제때문에 정신이 없었다…
라라벨에서 timezone도 제대로 되어있고, 정상적으로 저장된 아이들을 불러와서 object 채로 출력하면 시간이 정상적으로 출력되지만 (laravel 내 timezone을 계산하여 출력되는듯한) 하지만, json으로 toArray() 형태로 뿌려줘버리면, 해당 시간값 (createad_at, updatead_at)은 UTC시간으로 출력된다.
https://laravel.com/docs/7.x/upgrade#date-serialization
라라벨 6에서는 문제 없었지만, 7에서는 문제가 발생한다…
class 모델명 extends Model
{
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
}
해결 방법은 위와 같다.
serializeDate를 추가해줌으로서, UTC 형태(?) JSON 형태(?)가 아닌, 그냥 mysql 저장된 값 원본 그대로 출력해준다.
끝.
추가적으로… timezone에는 Asia/Seoul 로 되어 있어서, model create 할 경우에는 정상적으로 +09:00 시간으로 들어가는데.. 이상한게.. model 을 가져와서 ->save(); 할 경우에는 updatead_at 부분에 +00:00 (UTC)로 저장되는 버그가 있다.
무슨 버그인지 모르겠따… 버그 맞긴한가 ? 흠.