W3docs

timezone_abbreviations_list()

Apprenez à utiliser timezone_abbreviations_list() et DateTimeZone::listAbbreviations() en PHP pour récupérer les abréviations de fuseaux horaires.

Introduction

Une abréviation de fuseau horaire est un code court de 2 à 5 lettres, tel que EST, GMT ou CEST, qui désigne le décalage d'une région par rapport au Temps Universel Coordonné (UTC). PHP peut lister toutes les abréviations qu'il connaît, ainsi que les identifiants de fuseau horaire IANA (comme America/New_York) auxquels chacune correspond.

Ce chapitre explique comment récupérer cette liste, pourquoi les abréviations ne sont pas fiables seules, et fournit un tableau de référence des codes courants.

Avertissement

timezone_abbreviations_list() a été dépréciée en PHP 8.1 et supprimée en PHP 8.2. Sur PHP 8.2 et versions ultérieures, utilisez l'équivalent DateTimeZone::listAbbreviations() à la place. Les deux renvoient la même structure de données.

Pourquoi les abréviations sont ambiguës

Contrairement aux identifiants IANA, les abréviations ne sont pas uniques. CST seul peut signifier Central Standard Time (Amérique du Nord, UTC-6), China Standard Time (UTC+8) ou Cuba Standard Time. BST désigne à la fois l'heure d'été britannique et l'heure standard du Bangladesh. Comme le même code correspond à plusieurs régions, vous ne devez jamais stocker ou configurer un fuseau horaire par son abréviation. Résolvez toujours vers un identifiant IANA (par exemple Europe/London) et transmettez-le à date_default_timezone_set() ou à un objet DateTimeZone.

C'est précisément l'utilité de la liste des abréviations : transformer un code reçu (par exemple, depuis une saisie utilisateur) en identifiants candidats qu'il pourrait représenter — voir timezone_name_from_abbr() pour choisir une correspondance unique.

Lister toutes les abréviations

Les deux fonctions renvoient un tableau associatif. Chaque clé est une abréviation en minuscules ; chaque valeur est un tableau de zones, où chaque zone possède trois champs :

  • dsttrue si l'entrée est une variante d'heure d'été.
  • offset — le décalage UTC en secondes.
  • timezone_id — l'identifiant IANA (peut être null pour les décalages sans zone nommée).
<?php
// PHP 8.2+ (use timezone_abbreviations_list() on older versions)
$abbreviations = DateTimeZone::listAbbreviations();

print_r($abbreviations['acst']);

Sortie :

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

Le décalage 34200 secondes équivaut à 34200 / 3600 = 9,5 heures, soit UTC+9:30.

Associer les abréviations aux identifiants et décalages

Pour transformer la structure brute en lignes lisibles, parcourez le tableau externe puis chaque 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
        );
    }
}

Quelques exemples de lignes de la sortie :

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

La liste est volumineuse (des milliers de lignes), donc en pratique vous la filtrez aux codes qui vous intéressent plutôt que de tout afficher.

Abréviations de fuseaux horaires courantes

Voici une liste de référence des abréviations de fuseaux horaires courantes (les clés du tableau sont en minuscules en PHP ; affichées en majuscules ici pour la lisibilité) :

  • 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

La liste ci-dessus est un sous-ensemble courant. DateTimeZone::listAbbreviations() renvoie le tableau complet de toutes les abréviations enregistrées, que vous devriez parcourir de façon programmatique (comme indiqué ci-dessus) plutôt que de vous fier à une liste maintenue manuellement.

Fonctions associées

Pratique

Pratique
Lesquelles des abréviations suivantes sont des abréviations de fuseaux horaires valides selon la liste des abréviations de fuseaux horaires PHP disponible sur W3docs ?
Lesquelles des abréviations suivantes sont des abréviations de fuseaux horaires valides selon la liste des abréviations de fuseaux horaires PHP disponible sur W3docs ?
Was this page helpful?