2017-02-20 2 views
2

У меня есть список часовых поясов имя в по базе данных:Как получить UTC Offset в PHP

  • Америка/Анкоридж
  • Америка/Якутэт
  • Америка/Ситка
  • Америка/Нома
  • Америка/Джуно
  • Канада/Yukon
  • ...

Мне нужно получить UTC Смещение в PHP. Например, для Америка/Анкоридж Мне нужно иметь UTC-9 и так далее.

+4

['DateTimeZone :: getOffset'] (http://php.net/manual/en/datetimezone.getoffset.php) –

+0

Возможный дубликат http://stackoverflow.com/questions/31942933/how-to- get-time-zone-in-php-by-pass-country-code-or-country-name – Smit

+0

Обратите внимание, что в форме вопроса. Например, «как мне получить UTC Offset в PHP?» – anthropomorphic

ответ

1

вы можете использовать

$dateTimeZoneJapan = new DateTimeZone("America/Adak"); 
    $timeOffset = $dateTimeZoneJapan->getOffset(new DateTime("now", new DateTimeZone("UTC")) ); 
if ($timeOffset < 0){ //if time offset is negative 
    echo "-".gmdate("H", -$timeOffset); 
}else{ 
    echo gmdate("H", $timeOffset); //H will give number of hours. 
} 

это даст вам смещение часового пояса в секундах на успех или FALSE в случае неудачи.

+0

Ваш пример не работает правильно, например, для «Америка/Адак» он дает 14, но он должен быть -10 – user3351236

Смежные вопросы