
MongoDBBSONUTCDateTime 클래스의 jsonSerialize 메서드를 사용하여 UTC 시간을 JSON 포맷으로 serialize할 때 오류가 발생하는 이유는 protected 프로퍼티인 $date를 접근하려고 때문입니다.
protected 프로퍼티는 외부에서 직접 접근할 수 없으므로, jsonSerialize 메서드에서 접근할 수 있도록 하기 위해 __get() 메서드를 오버라이드하여 접근할 수 있도록 해야 합니다.
다음은 오류를 발생시키는 코드를 수정하여 UTC 시간을 JSON 포맷으로 serialize할 수 있는 방법입니다.
#hostingforum.kr
php
use MongoDBBSONUTCDateTime;
class UTCDateTimeSerialize extends UTCDateTime
{
public function jsonSerialize()
{
return [
'date' => $this->__get('date'),
'milliseconds' => $this->__get('milliseconds'),
'timezone' => $this->__get('timezone'),
];
}
}
$date = new UTCDateTimeSerialize();
$json = $date->jsonSerialize();
print_r($json);
위 코드에서 UTCDateTimeSerialize 클래스를 만들고 jsonSerialize 메서드를 오버라이드하여 protected 프로퍼티를 접근할 수 있도록 합니다.
이러한 방법으로 UTC 시간을 JSON 포맷으로 serialize할 수 있습니다.
2025-06-22 01:58