Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP date_offset_get() 함수 – 서머타임(DST) 오프셋 구하는 방법

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() 메서드 방식 중 상황에 맞게 선택하여 사용하면 됩니다.