2010-11-28 28 views
0

Le flux XML de Google Agenda inclut une valeur pour indiquer the timezone of the calendar, mais il inclut uniquement un ID de fuseau horaire de format long, plutôt que le décalage temporel.Emplacement TimeZone à compenser dans PHP

par exemple.

<gCal:timezone value="Australia/Hobart"/> 

ou

<gCal:timezone value='Europe/London'/> 

est-il un moyen facile de traduire ces valeurs d'emplacement en un décalage horaire (comme +11 hours?) Cette valeur devrait refléter l'état d'été actuel de l'environnement local.

Vous pouvez également demander à Google Agenda d'inclure ce décalage de fuseau horaire dans les données XML?

Répondre

3

Cela vous donnera le décalage horaire en secondes, par rapport à UTC:

$timezone = 'Europe/London'; 
$dt = new DateTime('now', new DateTimeZone($timezone)); 
echo $dt->getOffset(); 

Vous pouvez obtenir une liste de tous les fuseaux horaires pris en charge en appelant

DateTimeZone::listIdentifiers()