Il ya beaucoup d'informations sur les ajustements de fuseau horaire en PHP, mais je n'ai pas trouvé de réponse pour ce que je veux faire précisément à cause de tout le bruit.Ajustement du fuseau horaire en PHP avec DateTime/DateTimeZone
Étant donné une heure dans un fuseau horaire, je veux convertir à l'heure dans un autre fuseau horaire.
This est essentiellement ce que je veux faire, mais je dois être capable de le faire en utilisant seulement les bibliothèques PHP intégrées, pas la date PEAR.
C'est ce que je fais, mais il me semble toujours donner le décalage par rapport à l'heure GMT:
$los_angeles_time_zone = new DateTimeZone('America/Los_Angeles');
$hawaii_time_zone = new DateTimeZone('Pacific/Honolulu');
$date_time_los_angeles = new DateTime('2009-09-18 05:00:00', $los_angeles_time_zone);
printf("LA Time: %s<br/>", $date_time_los_angeles->format(DATE_ATOM));
$time_offset = $hawaii_time_zone->getOffset($date_time_los_angeles);
printf("Offset: %s<br/>", $time_offset);
C'est la sortie:
LA Heure: 2009-09 -18T05: 00: 00-07: 00
Offset: -36000
Je me attendais à 3 heures (10800 secondes). mais le truc '-7: 00' me dit qu'il garde tout par rapport à GMT, ce qui explique peut-être pourquoi il me donne le décalage "absolu".
Comment puis-je obtenir le décalage entre les deux fuseaux horaires sans tout ce GMT hoohah?
Merci.
MISE À JOUR:
Je me est survenue lors que je pouvais le faire et d'obtenir ce que je veux:
$date_time_los_angeles = new DateTime('2009-09-18 05:00:00', $los_angeles_time_zone);
printf("LA Time: %s<br/>", $date_time_los_angeles->format(DATE_ATOM));
$date_time_hawaii = new DateTime('2009-09-18 05:00:00', $hawaii_time_zone);
printf("Hawaii Time: %s<br/>", $date_time_hawaii->format(DATE_ATOM));
$time_offset = $los_angeles_time_zone->getOffset($date_time_los_angeles) - $hawaii_time_zone->getOffset($date_time_los_angeles);
printf("Offset: %s<br/>", $time_offset);
Mais il se sent maladroit pour moi. Quelqu'un sait-il une manière plus propre de le faire?
Incidemment, :), ce sont pour PHP> = 5.3.0. – GZipp
Ils ne semblent pas prendre en compte l'heure d'été. Im en utilisant les fonctions ci-dessus pour transformer CST en GMT et tous mes temps sont hors de 1 heure. –