PHP date_offset_get() 함수란?
PHP의 date_offset_get() 함수는 지정한 DateTime 객체에 적용된 일광 절약 시간(DST, Daylight Saving Time, 서머타임) 오프셋을 조회하는 함수입니다. 함수가 성공하면 DST 오프셋을 초 단위로 반환하며, 실패할 경우 FALSE를 반환합니다.
문법
date_offset_get(object)
매개변수
object − 오프셋을 확인할 DateTime 객체입니다.
반환값
성공 시 해당 날짜에 적용된 DST 오프셋을 초 단위로 반환하고, 실패 시 FALSE를 반환합니다.
예제 1
다음은 date_offset_get() 함수의 기본적인 사용 예제입니다. 절차적 방식과 객체 지향 방식 두 가지 모두 확인해 보세요.
<?php $dateSrc = '2017-09-23 12:50 GMT'; $dateTime = date_create($dateSrc); $retval = date_offset_get($dateTime); echo "Returned value is $retval"; echo "<br />"; // 객체 지향 방식(getOffset 메서드) $dateTime = new DateTime($dateSrc); $retval = $dateTime->getOffset(); echo "Returned value is $retval"; ?>
출력 결과
Returned value is 0
Returned value is 0
GMT 기준으로 생성된 날짜에는 서머타임이 적용되지 않기 때문에 오프셋이 0초로 반환됩니다.
예제 2
이번에는 특정 시간대를 지정하여 오프셋을 확인해 보겠습니다.
<?php
$res = date_create("2018-08-20", timezone_open("Europe/Oslo"));
echo date_offset_get($res) . " seconds.<br />";
?>
출력 결과
7200 seconds
2018년 8월 20일 노르웨이 오슬로(Europe/Oslo)는 서머타임이 적용되는 기간이므로, UTC보다 2시간 앞선 7200초가 오프셋으로 반환되었습니다.
정리
date_offset_get() 함수는 시간대별 서머타임 여부에 따라 달라지는 시간 오프셋을 쉽게 확인할 수 있는 유용한 도구입니다. 절차적 함수 방식과 DateTime 객체의 getOffset() 메서드 방식 중 상황에 맞게 선택하여 사용하면 됩니다.