개요
PHP의 timezone_abbreviations_list() 함수는 서머타임(DST) 적용 여부, UTC 기준 오프셋(초 단위), 그리고 시간대 식별자(timezone_id)를 포함하는 연관 배열을 반환합니다. 전 세계 모든 시간대 약어에 대한 상세 정보를 한 번에 조회할 수 있어, 다국어·다지역 서비스에서 시간대 처리 로직을 구현할 때 유용하게 활용됩니다.
참고로 이 함수는 객체 지향 방식인 DateTimeZone::listAbbreviations()와 완전히 동일한 결과를 반환합니다.
문법
timezone_abbreviations_list()
매개변수
이 함수는 별도의 매개변수를 받지 않습니다.
반환 값
성공 시 시간대 약어 정보가 담긴 배열(array)을 반환하고, 실패 시 FALSE를 반환합니다.
반환되는 배열의 각 항목은 다음과 같은 구조를 가집니다.
- dst – 서머타임(Daylight Saving Time) 적용 여부
- offset – UTC 기준 시간 오프셋(초 단위)
- timezone_id – 해당 시간대의 식별자
예제 1
다음은 "acst" 약어에 해당하는 시간대 정보를 조회하는 예제입니다. 절차적 함수 방식과 DateTimeZone 클래스 방식, 두 가지를 함께 비교해 보겠습니다.
<?php $timezone_abbreviations = timezone_abbreviations_list(); print_r($timezone_abbreviations["acst"]); echo "----------------------------------------------\n"; # 두 번째 방식: DateTimeZone 클래스 활용 $timezone_abbreviations = DateTimeZone::listAbbreviations(); print_r($timezone_abbreviations["acst"]); ?>
출력 결과
Array (
[0] => Array (
[dst] => 1
[offset] => -14400
[timezone_id] => America/Porto_Acre
)
[1] => Array (
[dst] =>
[offset] => 32400
[timezone_id] => Australia/Adelaide
)
[2] => Array (
[dst] =>
[offset] => 34200
[timezone_id] => Australia/Adelaide
)
[3] => Array (
[dst] => 1
[offset] => -14400
[timezone_id] => America/Eirunepe
)
[4] => Array (
[dst] => 1
[offset] => -14400
[timezone_id] => America/Rio_Branco
)
...
)
----------------------------------------------
Array (
[0] => Array (
[dst] => 1
[offset] => -14400
[timezone_id] => America/Porto_Acre
)
...
)출력을 보면 두 방식 모두 동일한 결과를 반환합니다. 하나의 약어("acst")에 여러 시간대가 매핑되어 있으며, 같은 시간대라도 서머타임 적용 여부(dst)나 오프셋 값(offset)이 다른 항목이 존재할 수 있습니다. 예를 들어 호주 애들레이드(Australia/Adelaide)는 32400초(UTC+9)와 34200초(UTC+9.5) 두 가지 오프셋으로 나타납니다.
예제 2
이번에는 "act" 약어로 조회하는 예제입니다.
<?php $res = timezone_abbreviations_list(); print_r($res["act"]); ?>
출력 결과
Array
(
[0] => Array
(
[dst] =>
[offset] => -18000
[timezone_id] => America/Porto_Acre
)
[1] => Array
(
[dst] =>
[offset] => -18000
[timezone_id] => America/Eirunepe
)
[2] => Array
(
[dst] =>
[offset] => -18000
[timezone_id] => America/Rio_Branco
)
[3] => Array
(
[dst] =>
[offset] => -18000
[timezone_id] => Brazil/Acre
)
)정리
timezone_abbreviations_list() 함수는 매개변수 없이 호출하며, 성공 시 DST 여부·오프셋·시간대 ID를 담은 연관 배열을 반환합니다. 특정 지역의 가능한 모든 시간대 오프셋을 확인하거나, 사용자에게 시간대 선택 목록을 제공하는 기능을 만들 때 활용하면 좋습니다.