Расположение часового пояса для смещения в PHP

Канал XML Календаря Google содержит значение, указывающее часовой пояс календаря, но он включает только идентификатор часового пояса в длинном формате, а не смещение времени.

e.g.

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

or

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

Есть ли простой способ перевести эти значения местоположения в смещение часового пояса (например, +11 hours?) Это значение должно отражать текущий статус перехода на летнее время в локали.

В качестве альтернативы, есть ли способ заставить Календарь Google включить это смещение часового пояса в данные XML?


person Dexter    schedule 28.11.2010    source источник


Ответы (2)


Это даст вам смещение часового пояса в секундах относительно UTC:

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

Вы можете получить список всех поддерживаемых часовых поясов, позвонив

DateTimeZone::listIdentifiers() 
person Fabian Iwand    schedule 28.11.2010

Вы можете использовать DateTimeZone::listAbbreviations и DateTimeZone::listIdentifiers

person ajreal    schedule 28.11.2010