W3docs

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, EST ou CEST). 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 $abbr uniquement, ce qui peut retourner false ou un fuseau horaire incorrect en raison d'abréviations ambiguës.
  • $isdst - Un indicateur précisant si l'heure d'été est en vigueur : 1 pour l'heure d'été, 0 pour 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

php— editable, runs on the server

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

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.

Pratique

Pratique
Que retourne la fonction timezone_name_from_abbr() en PHP ?
Que retourne la fonction timezone_name_from_abbr() en PHP ?
Was this page helpful?