Для того что бы получить массив списка всех тайм зон с временной разницей по Гринвичу, используйте следующую функцию:
function get_time_timezones() { $zones_array = array(); $timestamp = time(); $default_timezone = date_default_timezone_get(); $timezone_list = timezone_identifiers_list(); foreach ($timezone_list as $zone) { date_default_timezone_set($zone); $zones_array[$zone] = date('P', $timestamp); } date_default_timezone_set($default_timezone); return $zones_array; }
Что мы здесь имеем:
$zones_array — наш будущий массив таймзон с метками времени
$timestamp — текущее время в timestamp
$default_timezone — текущая таймзона
$timezone_list — список таймзон
Далее, мы в цикле проходим по списку таймзон устанавливая каждую как текущую для нашего сайта:
foreach ($timezone_list as $zone) { date_default_timezone_set($zone); $zones_array[$zone] = date('P', $timestamp); }
И используя ф-ю «date()» с параметром «P», определяем разницу времени по гринвичу
Ну а в самом конце, устанавливаем нашу «родную» временную зону:
date_default_timezone_set($default_timezone);