Mammouth du PHP |
571 Messages
25 févr. 2015, 15:01
comme ça été dit précédemment tu n'as pas besoin d'enregistrer dans la BD l'heure en fonction du pays.Tu pars du principe que toutes heures enregistrées ont pour référence le fuseau horaire Europe/Paris(généralement spécifié dans le fichier php.ini du serveur apache) et c'est au moment d'afficher que tu dois localiser ton utilisateur pour pouvoir afficher l'heure en fonction de sa localisation.
si ton serveur est configuré en heure de Paris c-a-d que dans le fichier de configuration php.ini tu as ceci:
date.timezone = "Europe/Paris"
Pour afficher l'heure de Paris tu n'as plus besoin de spécifier dans le code php le fuseau horaire.Par ailleurs si veux afficher l'heure en fonction d'un pays(autre que Europe/Paris,Europe/Berlin,...) il faudra alors spécifier les fuseaux horaires de chaque pays.
$ny = new DateTime('now',new DateTimeZone('America/New_York'));
echo "heure de ny=", $ny->format("d-m-Y H:i:s"),'<br>'; //25-02-2015 07:58:16
$paris = new DateTime('now');
echo "heure de paris=", $paris->format("d-m-Y H:i:s"),'<br>';//25-02-2015 13:58:16
$sydney=new DateTime('now',new DateTimeZone('Australia/Sydney'));
echo "heure de sydney=", $sydney->format("d-m-Y H:i:s"),'<br>';//25-02-2015 23:58:16
sachant que l'Australie a plusieurs fuseaux horaires.
liste des fuseaux horaires