Aller au contenu

timezone_name_get()

Introduction

Cet article présente la fonction timezone_name_get en PHP. Nous explorerons sa syntaxe, ses paramètres et ses valeurs de retour, ainsi que des exemples concrets. Cette fonction est essentielle pour les développeurs travaillant avec les fuseaux horaires et les dates, et sa maîtrise peut considérablement améliorer la précision de votre code.

Note : La fonction timezone_name_get fait partie de l'extension intl. Assurez-vous qu'elle est installée et activée dans votre environnement PHP, sinon une erreur fatale se produira.

Syntaxe

La fonction timezone_name_get possède une syntaxe simple. Elle prend un objet DateTimeZone en paramètre et retourne le nom du fuseau horaire qu'il représente. Voici la syntaxe de base :

Syntaxe de la fonction PHP timezone_name_get()

php
<?php

string timezone_name_get ( DateTimeZone $object )

Détaillons les paramètres :

  • $object : Il s'agit d'un objet DateTimeZone qui représente un fuseau horaire.

Paramètres

Comme mentionné ci-dessus, la fonction timezone_name_get ne prend qu'un seul paramètre : un objet DateTimeZone. Cet objet représente un fuseau horaire spécifique et est créé à l'aide de la classe DateTimeZone. Voici un exemple de création d'un objet DateTimeZone :

Exemple de création d'un objet DateTimeZone en PHP

php
<?php

$timezone = new DateTimeZone('America/New_York');

Dans cet exemple, nous créons un objet DateTimeZone qui représente le fuseau horaire de l'Est aux États-Unis.

Note : À partir de PHP 8+, la vérification stricte des types est appliquée. Passer un argument qui n'est pas un objet DateTimeZone déclenchera une TypeError.

Valeurs de retour

La fonction timezone_name_get retourne une chaîne de caractères représentant le nom du fuseau horaire indiqué par l'objet DateTimeZone passé en paramètre. Voici un exemple d'utilisation :

Exemple d'utilisation de la fonction timezone_name_get() en PHP

php
<?php

$timezone = new DateTimeZone('America/New_York');
echo timezone_name_get($timezone); // Output: America/New_York

Dans cet exemple, nous créons un objet DateTimeZone représentant le fuseau horaire de l'Est, puis nous le passons à la fonction timezone_name_get. La fonction retourne ensuite la chaîne "America/New_York", que nous affichons à l'aide de l'instruction echo.

Exemples concrets

Maintenant que nous avons couvert les bases de la fonction timezone_name_get, explorons quelques exemples concrets de son utilisation.

Exemple 1 : Affichage des fuseaux horaires dans un menu déroulant

Supposons que nous souhaitions créer un formulaire permettant aux utilisateurs de sélectionner leur fuseau horaire. Nous pouvons utiliser la classe DateTimeZone conjointement avec la fonction timezone_name_get pour remplir un menu déroulant avec tous les fuseaux horaires disponibles. Voici un exemple :

Affichage des fuseaux horaires dans un menu déroulant en PHP

php
<select name="timezone">
  <?php foreach(DateTimeZone::listIdentifiers() as $timezone): ?>
    <option value="<‌?php echo $timezone; ?>">
      <?php echo $timezone; ?>
    </option>
  <?php endforeach; ?>
</select>

Dans cet exemple, nous utilisons la méthode listIdentifiers de la classe DateTimeZone pour obtenir la liste de tous les fuseaux horaires disponibles. Puisque listIdentifiers retourne déjà les noms canoniques des fuseaux horaires, nous pouvons utiliser directement $timezone pour la valeur et l'étiquette, ce qui rend le code plus efficace.

Exemple 2 : Conversion d'une date vers un autre fuseau horaire

Supposons que nous ayons une date située dans le fuseau horaire du Pacifique et que nous souhaitions la convertir vers le fuseau horaire de l'Est. Nous pouvons utiliser la classe DateTime ainsi que les classes/fonctions DateTimeZone et timezone_name_get pour y parvenir. Voici un exemple :

Conversion d'une date vers un autre fuseau horaire en PHP

php
<?php

$pacificTime = new DateTime('2022-03-01 09:00:00', new DateTimeZone('America/Los_Angeles'));
$easternTime = clone $pacificTime;
$easternTime->setTimezone(new DateTimeZone('America/New_York'));

echo 'Pacific Time: ' . $pacificTime->format('Y-m-d H:i:s') . ' (' . timezone_name_get($pacificTime->getTimezone()) . ')' . PHP_EOL;
echo 'Eastern Time: ' . $easternTime->format('Y-m-d H:i:s') . ' (' . timezone_name_get($easternTime->getTimezone()) . ')';

Dans cet exemple, nous créons un objet DateTime représentant une date et une heure dans le fuseau horaire du Pacifique, en utilisant l'identifiant America/Los_Angeles. Nous créons ensuite un clone de cet objet et utilisons la méthode setTimezone pour le convertir vers le fuseau horaire de l'Est, en utilisant l'identifiant America/New_York. Enfin, nous affichons les dates dans les deux fuseaux horaires à l'aide de la méthode format, et vérifions les noms des fuseaux horaires actifs grâce à timezone_name_get.

Conclusion

Cet article a présenté la fonction timezone_name_get en PHP, y compris sa syntaxe, ses paramètres, ses valeurs de retour et ses cas d'utilisation pratiques. Nous espérons que ces informations vous aideront à gérer les conversions de fuseaux horaires plus efficacement dans vos projets.

Pratique

Quelle est la fonction de la méthode `timezone_name_get` en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.