W3docs

timezone_abbreviations_list()

Learn how to use timezone_abbreviations_list() and DateTimeZone::listAbbreviations() in PHP to retrieve timezone abbreviations and their IANA identifiers.

Introduction

A timezone abbreviation is a short 2-5 letter code such as EST, GMT, or CEST that names a region's offset from Coordinated Universal Time (UTC). PHP can list every abbreviation it knows about, along with the IANA timezone identifiers (like America/New_York) each one maps to.

This chapter explains how to retrieve that list, why abbreviations are unreliable on their own, and gives a reference table of common codes.

Warning

timezone_abbreviations_list() was deprecated in PHP 8.1 and removed in PHP 8.2. On PHP 8.2 and later, use the equivalent DateTimeZone::listAbbreviations() instead. Both return the same data structure.

Why abbreviations are ambiguous

Unlike IANA identifiers, abbreviations are not unique. CST alone can mean Central Standard Time (North America, UTC-6), China Standard Time (UTC+8), or Cuba Standard Time. BST is British Summer Time or Bangladesh Standard Time. Because the same code maps to several regions, you should never store or configure a timezone by its abbreviation. Always resolve to an IANA identifier (for example Europe/London) and feed that to date_default_timezone_set() or a DateTimeZone object.

This is exactly what the abbreviations list is for: turning a code you received (say, from user input) into the candidate identifiers it could represent — see timezone_name_from_abbr() for picking a single match.

Listing every abbreviation

Both functions return an associative array. Each key is a lowercase abbreviation; each value is an array of zones, where every zone has three fields:

  • dsttrue if the entry is a daylight-saving variant.
  • offset — the UTC offset in seconds.
  • timezone_id — the IANA identifier (may be null for offsets with no named zone).
<?php
// PHP 8.2+ (use timezone_abbreviations_list() on older versions)
$abbreviations = DateTimeZone::listAbbreviations();

print_r($abbreviations['acst']);

Output:

Array
(
    [0] => Array
        (
            [dst] =>
            [offset] => 34200
            [timezone_id] => Australia/Adelaide
        )
    ...
)

The offset 34200 seconds is 34200 / 3600 = 9.5 hours, i.e. UTC+9:30.

Mapping abbreviations to identifiers and offsets

To turn the raw structure into readable rows, iterate the outer array and then each zone:

<?php
$abbreviations = DateTimeZone::listAbbreviations();

foreach ($abbreviations as $abbr => $zones) {
    foreach ($zones as $zone) {
        $hours = $zone['offset'] / 3600;
        printf(
            "%-5s => %-25s (UTC %+.1f)\n",
            strtoupper($abbr),
            $zone['timezone_id'] ?? '(unnamed)',
            $hours
        );
    }
}

A few sample lines of the output:

GMT   => Europe/London             (UTC +0.0)
GMT   => Africa/Abidjan            (UTC +0.0)
CET   => Europe/Paris              (UTC +1.0)

The list is large (thousands of rows), so in practice you filter it to the codes you care about rather than printing all of it.

Common timezone abbreviations

Below is a reference list of common timezone abbreviations (the array keys are lowercase in PHP; shown uppercase here for readability):

  • ACDT - Australian Central Daylight Time
  • ACST - Australian Central Standard Time
  • ACT - Acre Time
  • ADT - Atlantic Daylight Time
  • AEDT - Australian Eastern Daylight Time
  • AEST - Australian Eastern Standard Time
  • AFT - Afghanistan Time
  • AKDT - Alaska Daylight Time
  • AKST - Alaska Standard Time
  • AMST - Amazon Summer Time
  • AMT - Amazon Time
  • ART - Argentina Time
  • AST - Atlantic Standard Time
  • AWST - Australian Western Standard Time
  • AZOST - Azores Standard Time
  • AZT - Azerbaijan Time
  • BDT - Brunei Time
  • BNT - Brunei Darussalam Time
  • BOT - Bolivia Time
  • BRST - Brasilia Summer Time
  • BRT - Brasilia Time
  • BST - British Summer Time
  • BTT - Bhutan Time
  • CAT - Central Africa Time
  • CCT - Cocos Islands Time
  • CDT - Central Daylight Time
  • CEST - Central European Summer Time
  • CET - Central European Time
  • CHADT - Chatham Island Daylight Time
  • CHAST - Chatham Island Standard Time
  • CHOT - Choibalsan Standard Time
  • CHST - Chamorro Standard Time
  • CHT - Chuuk Time
  • CKT - Cook Island Time
  • CLST - Chile Summer Time
  • CLT - Chile Standard Time
  • COT - Colombia Time
  • CST - Central Standard Time
  • CT - Central Time
  • CVT - Cape Verde Time
  • CWST - Central Western Standard Time
  • CXT - Christmas Island Time
  • DAVT - Davis Time
  • DDUT - Dumont-d'Urville Time
  • EASST - Easter Island Summer Time
  • EAST - Easter Island Standard Time
  • EAT - Eastern Africa Time
  • ECT - Eastern Caribbean Time
  • EDT - Eastern Daylight Time
  • EEST - Eastern European Summer Time
  • EET - Eastern European Time
  • EGST - Eastern Greenland Summer Time
  • EGT - Eastern Greenland Time
  • EIT - Eastern Indonesian Time
  • EST - Eastern Standard Time
  • FET - Further Eastern European Time
  • FJT - Fiji Time
  • FKST - Falkland Islands Summer Time
  • FKT - Falkland Islands Time
  • FNT - Fernando de Noronha Time
  • GALT - Galapagos Time
  • GAMT - Gambier Islands Time
  • GET - Georgia Standard Time
  • GFT - French Guiana Time
  • GILT - Gilbert Island Time
  • GIT - Gambier Island Time
  • GMT - Greenwich Mean Time
  • GST - Gulf Standard Time
  • GYT - Guyana Time
  • HADT - Hawaii-Aleutian Daylight Time
  • HAST - Hawaii-Aleutian Standard Time
  • HKT - Hong Kong Time
  • HST - Hawaii Standard Time
  • ICT - Indochina Time
  • IDT - Israel Daylight Time
  • IRDT - Iran Daylight Time
  • IRST - Iran Standard Time
  • IST - India / Irish / Israel Standard Time (ambiguous)
  • JST - Japan Standard Time
  • KST - Korea Standard Time
  • MDT - Mountain Daylight Time
  • MSK - Moscow Standard Time
  • MST - Mountain Standard Time
  • NZDT - New Zealand Daylight Time
  • NZST - New Zealand Standard Time
  • PDT - Pacific Daylight Time
  • PHT - Philippine Time
  • PKT - Pakistan Standard Time
  • PST - Pacific Standard Time
  • SGT - Singapore Time
  • UTC - Coordinated Universal Time
  • WAT - West Africa Time
  • WEST - Western European Summer Time
  • WET - Western European Time
  • WIB - Western Indonesian Time
  • WITA - Central Indonesian Time

The list above is a common subset. DateTimeZone::listAbbreviations() returns the complete array of every registered abbreviation, which you should iterate programmatically (as shown above) rather than relying on a hand-maintained list.

Practice

Practice
Which of the following are valid timezone abbreviations as per the PHP timezone abbreviations list available on W3docs?
Which of the following are valid timezone abbreviations as per the PHP timezone abbreviations list available on W3docs?
Was this page helpful?