
DateTime::setTimezone 메서드를 사용할 때, 다른 시간대에 해당하는 UTC offset 값을 계산하는 방법은 다음과 같습니다.
1. 시간대 이름을 가져옵니다. 예를 들어, 'Asia/Seoul' 또는 'America/New_York'와 같은 시간대 이름을 가져옵니다.
2. DateTimeZone::getOffset 메서드를 사용하여 UTC offset 값을 계산합니다. 이 메서드는 DateTimeZone 인스턴스에 시간대 이름을 전달하고, UTC offset 값을 반환합니다.
3. UTC offset 값을 사용하여 DateTime::setTimezone 메서드를 호출하여 날짜와 시간을 다른 시간대로 변환합니다.
예를 들어, 'Asia/Seoul' 시간대에 해당하는 UTC offset 값을 계산하고, 현재 날짜와 시간을 'Asia/Seoul' 시간대로 변환하는 코드는 다음과 같습니다.
#hostingforum.kr
php
$date = new DateTime('2022-01-01 12:00:00');
$seoulTz = new DateTimeZone('Asia/Seoul');
$offset = $seoulTz->getOffset($date);
$date->setTimezone($seoulTz);
echo $date->format('Y-m-d H:i:sP'); // 2022-01-01 21:00:00+09:00
이 코드는 '2022-01-01 12:00:00' 날짜와 시간을 'Asia/Seoul' 시간대로 변환하고, UTC offset 값을 포함하여 출력합니다.
2025-05-30 04:06