Afficher plusieurs fuseaux horaires

Eléphanteau du PHP | 34 Messages

04 oct. 2019, 17:56

Bonjour à toutes et à tous,

Je voudrais, sur une page php, afficher la date, c'est fait.
Et l'heure, c'est fait aussi.

<?php
$date = date("l d-m-Y");
$heure = date("H:i");
?>
            
            
            <div class="col-8">
                <h5>Nous sommes <?php echo $date?> et il est <?php echo $heure?> GMT.</h5>
            </div>
Mais je voudrais afficher au moins 3 heures différentes en plus de celle affiché.

J'ai trouvé la fonction sur timezone mais j'ai pas osé l'utiliser vu que ça semble modifier le php.ini

Comment puis je faire pour afficher plusieurs fuseaux horaires en temps réel ?

Merci d'avance pour votre aide.

Avatar du membre
Mammouth du PHP | 1609 Messages

04 oct. 2019, 18:09

Salut, avec DateTime tu peux changer la timezone et ainsi afficher la date et l'heure pour différents fuseaux.
https://www.php.net/manual/fr/datetime.settimezone.php
<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
Développeur web depuis + de 20 ans

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

05 oct. 2019, 13:53

A noter que si tu veux afficher l'heure de façon dynamique (sans avoir à recharger la page) tu peux utiliser du javascript.
Il existe notamment une librairie JS très pratique qui s'appelle momentJS
https://momentjs.com/timezone/
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 34 Messages

05 oct. 2019, 21:05

Merci à vous 2,

Je n'ai pas encore eu le temps de me pencher sur ce problème.

Chose faite demain si tout va bien ;)

Vincent GLUTEN
Invité n'ayant pas de compte PHPfrance

21 oct. 2019, 18:39

Salut :)
Moi j'utilise ça :

Code : Tout sélectionner

<?php // Fuseau horaire date_default_timezone_set('Europe/Paris'); // Affichage en français setlocale(LC_TIME, 'fr_FR.UTF8'); ?> <html> Nous sommes le <?=strftime('%A %d %B %Y');?>. <br> Il est <?=strftime('%Hh%M');?>. </html>
Avec la liste des fuseaux horaires ici.
Pas testé l'autre méthode ci-dessus, c'est peut-être mieux, ou pas ^^

Vincent GLUTEN
Invité n'ayant pas de compte PHPfrance

21 oct. 2019, 18:41

Oublié le lien et on peut pas éditer ^^
Lien : https://www.php.net/manual/en/timezones.php