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.
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:
dst—trueif the entry is a daylight-saving variant.offset— the UTC offset in seconds.timezone_id— the IANA identifier (may benullfor 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.
Related functions
- PHP Timezones — overview of
DateTimeZoneand IANA identifiers. timezone_identifiers_list()— list every IANA identifier PHP supports.timezone_name_from_abbr()— resolve a single abbreviation to one identifier.date_default_timezone_set()— set the script-wide default timezone.