Aller au contenu

Fuseaux horaires PHP

Un fuseau horaire est une région du monde qui utilise une heure standard uniforme à des fins légales, commerciales et sociales. En PHP, les fuseaux horaires sont représentés par des chaînes de caractères identifiant une région géographique, comme "America/New_York" ou "Europe/London".

Fonctions de fuseau horaire PHP

PHP propose plusieurs fonctions pour travailler avec les fuseaux horaires. Voici certaines des fonctions les plus couramment utilisées :

1. date_default_timezone_set()

Cette fonction définit le fuseau horaire par défaut utilisé par toutes les fonctions de date/heure dans un script. Elle prend une chaîne de caractères de fuseau horaire en argument, comme "America/New_York" ou "Europe/London".

2. date_default_timezone_get()

Cette fonction retourne le fuseau horaire par défaut utilisé par toutes les fonctions de date/heure dans un script.

3. timezone_identifiers_list()

Cette fonction retourne un tableau indexé contenant tous les identifiants de fuseau horaire définis.

4. timezone_abbreviations_list()

Cette fonction retourne un tableau associatif contenant les abréviations de fuseau horaire et leurs décalages par rapport à l'UTC. (Note : Dépréciée en PHP 8.1 et supprimée en PHP 8.2. Utilisez plutôt DateTimeZone::listIdentifiers() ou les classes POO modernes.)

5. timezone_name_from_abbr()

Cette fonction retourne le nom du fuseau horaire à partir d'une abréviation.

6. DateTimeZone::getOffset()

Cette méthode retourne le décalage du fuseau horaire par rapport à l'UTC pour un objet DateTime donné.

Approche moderne : Bien que les fonctions procédurales ci-dessus soient prises en charge dans les anciennes versions de PHP, le développement PHP moderne recommande d'utiliser les classes DateTime et DateTimeZone. Elles offrent une meilleure conception orientée objet, une gestion automatique de l'heure d'été et constituent la norme pour les applications PHP actuelles.

Exemples d'utilisation

Examinons quelques exemples pratiques d'utilisation des fonctions de fuseau horaire PHP.

Exemple 1 : Définir le fuseau horaire par défaut

Supposons que vous souhaitiez définir le fuseau horaire par défaut sur "America/New_York". Vous pouvez le faire en utilisant la fonction date_default_timezone_set(), comme suit :

Définir le fuseau horaire par défaut en PHP

php
date_default_timezone_set("America/New_York");

Cela définit le fuseau horaire par défaut sur "America/New_York".

Exemple 2 : Obtenir le fuseau horaire par défaut

Supposons que vous souhaitiez obtenir le fuseau horaire par défaut. Vous pouvez le faire en utilisant la fonction date_default_timezone_get(). Pour garantir que cet exemple s'exécute de manière indépendante, nous définissons d'abord un fuseau horaire par défaut :

Obtenir le fuseau horaire par défaut

php
<?php

date_default_timezone_set('UTC');
$timezone = date_default_timezone_get();
echo "The default timezone is: " . $timezone;

?>

Cela affiche "The default timezone is: UTC".

Exemple 3 : Lister les identifiants de fuseau horaire

Supposons que vous souhaitiez lister tous les identifiants de fuseau horaire définis. Vous pouvez le faire en utilisant la fonction timezone_identifiers_list() :

Lister les identifiants de fuseau horaire en PHP

php
<?php

date_default_timezone_set('UTC');
$timezones = timezone_identifiers_list();
foreach ($timezones as $timezone) {
    echo $timezone . "\n";
}

?>

Cela affiche une liste de tous les identifiants de fuseau horaire définis.

Exemple 4 : Conversion de fuseaux horaires avec des classes modernes

Pour la conversion de fuseaux horaires et la gestion automatique de l'heure d'été, utilisez les classes DateTime et DateTimeZone :

Conversion de fuseaux horaires en PHP

php
<?php

$dt = new DateTime('2024-01-01 12:00:00', new DateTimeZone('America/New_York'));
$dt->setTimezone(new DateTimeZone('Europe/London'));
echo $dt->format('Y-m-d H:i:s P');

?>

Cela affiche l'heure convertie pour Londres, en tenant automatiquement compte des différences d'heure d'été.

Conclusion

Dans cet article, nous avons abordé les fuseaux horaires PHP et les fonctions utilisées pour les manipuler. Nous avons expliqué ce que sont les fuseaux horaires et fourni des exemples de fonctions procédurales héritées ainsi que d'approches orientées objet modernes. En utilisant ces fonctions dans vos applications PHP, vous pouvez facilement travailler avec les fuseaux horaires et vous assurer que vos calculs de date et d'heure sont précis et fiables.

Practice

Que pouvez-vous déduire de la gestion des fuseaux horaires en PHP à partir des informations de ce site ?

Trouvez-vous cela utile?

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