
MongoDBBSONUTCDateTime::jsonSerialize 메소드는 시간을 UTC로 serialize 할 때 timezone offset을 포함하여 serialize 합니다. 이는 원하는 시간 형식과 다르기 때문에, jsonSerialize 메소드의 동작에 대한 이해가 필요합니다.
jsonSerialize 메소드의 동작은 다음과 같습니다.
- UTCDateTime은 내부적으로 시간을 저장하는 방식이 다른데, 이로 인해 JSON serialize 시에 문제가 발생합니다.
- jsonSerialize 메소드는 시간을 UTC로 serialize 할 때, timezone offset을 포함하여 serialize 합니다.
timezone offset을 제외한 시간을 serialize 하는 방법은 다음과 같습니다.
- UTCDateTime을 DateTime 객체로 변환하여 serialize 할 수 있습니다.
- DateTime 객체의 setTimezone 메소드를 사용하여 timezone offset을 제거할 수 있습니다.
예제 코드는 다음과 같습니다.
#hostingforum.kr
php
use MongoDBBSONUTCDateTime;
use DateTime;
$utcDateTime = new UTCDateTime();
$dateTime = new DateTime();
$dateTime->setTimestamp($utcDateTime->toDateTime()->getTimestamp());
$json = json_encode($dateTime);
echo $json;
이 코드는 UTCDateTime 객체를 DateTime 객체로 변환하여 serialize 할 수 있습니다. timezone offset을 제거한 시간을 serialize 할 수 있습니다.
2025-06-22 20:26