timezone_name_from_abbr()
Découvrez la syntaxe, les paramètres et la valeur de retour de la fonction PHP timezone_name_from_abbr() avec des exemples pratiques.
Introduction
Dans cet article, nous allons aborder la syntaxe, les paramètres et la valeur de retour de la fonction PHP timezone_name_from_abbr(), ainsi que des exemples pratiques de son utilisation.
Comprendre la fonction PHP timezone_name_from_abbr()
La fonction timezone_name_from_abbr() en PHP retourne le nom complet du fuseau horaire IANA (tel que America/New_York) correspondant à une abréviation donnée (comme EST). Elle retourne le nom du fuseau horaire en cas de succès, ou false en cas d'échec.
C'est l'opération inverse de la recherche d'une abréviation pour un fuseau connu. Un cas d'usage courant est l'analyse d'une chaîne de date où seule l'abréviation est disponible (par exemple, une ligne de journal contenant EST) et où vous avez besoin d'un identifiant de fuseau canonique pour construire un DateTimeZone.
Remarque : Cette fonction est notoirement peu fiable car de nombreuses abréviations de fuseaux horaires sont ambiguës ou non standard — EST, IST et CST correspondent chacune à plusieurs régions dans le monde. Le manuel PHP recommande d'utiliser DateTimeZone pour les applications en production. Lorsque vous utilisez timezone_name_from_abbr(), fournissez toujours le paramètre $gmtOffset afin que PHP puisse distinguer les fuseaux qui partagent la même abréviation.
Syntaxe
La syntaxe de la fonction timezone_name_from_abbr() est la suivante :
Syntaxe de la fonction PHP timezone_name_from_abbr()
<?php
string|false timezone_name_from_abbr(string $abbr, int $gmtOffset = -1, int $isdst = -1)Paramètres
La fonction accepte trois paramètres :
$abbr- Le nom abrégé du fuseau horaire (par exemple,ESTouCEST). Non sensible à la casse.$gmtOffset- Le décalage GMT du fuseau horaire en secondes (pas en heures). Ce paramètre est facultatif, mais fortement recommandé. S'il n'est pas fourni (-1), PHP devine à partir de$abbruniquement, ce qui peut retournerfalseou un fuseau horaire incorrect en raison d'abréviations ambiguës.$isdst- Un indicateur précisant si l'heure d'été est en vigueur :1pour l'heure d'été,0pour l'heure standard,-1(par défaut) pour ignorer. Lorsqu'il est défini, seuls les fuseaux correspondant à cet état d'heure d'été sont pris en compte.
Un moyen pratique de calculer le décalage en secondes est heures × 3600 — par exemple, UTC−5 donne -5 * 3600 = -18000.
Valeur de retour
La fonction timezone_name_from_abbr() retourne le nom du fuseau horaire (une chaîne telle que America/New_York) en cas de succès, ou false en cas d'échec lorsqu'aucun fuseau ne correspond à l'abréviation et au décalage donnés.
Exemples
Voyons quelques exemples pratiques d'utilisation de la fonction timezone_name_from_abbr() en PHP.
Exemple d'utilisation de la fonction timezone_name_from_abbr() en PHP
Dans les exemples ci-dessus, nous passons les noms de fuseaux horaires abrégés EST et PST ainsi que leurs décalages GMT respectifs en secondes. La fonction retourne les noms complets de fuseaux horaires correspondants, America/New_York et America/Los_Angeles respectivement. Vérifiez toujours la valeur false pour gérer les cas où l'abréviation n'est pas reconnue.
Le résultat peut ensuite être passé directement à un DateTimeZone pour effectuer de vrais calculs de date :
<?php
$name = timezone_name_from_abbr('CET', 3600); // "Europe/Berlin"
$date = new DateTime('2024-01-15 12:00', new DateTimeZone($name));
echo $date->format('Y-m-d H:i T'); // outputs "2024-01-15 12:00 CET"Fonctions connexes
timezone_abbreviations_list()- liste toutes les abréviations connues de PHP, avec les décalages et les noms de fuseaux.timezone_identifiers_list()- retourne tous les identifiants de fuseaux horaires IANA valides.date_default_timezone_set()- définit le fuseau horaire par défaut pour toutes les fonctions de date/heure.
Conclusion
Nous avons abordé la syntaxe et l'utilisation de la fonction PHP timezone_name_from_abbr(). Cette fonction permet de convertir des noms de fuseaux horaires abrégés en leurs identifiants complets, mais comme les abréviations sont ambiguës, vous devriez toujours fournir $gmtOffset et préférer DateTimeZone pour des applications robustes. Nous espérons que cet article vous a été utile.