function toGmtOffset($timezone){
$userTimeZone = new DateTimeZone($timezone);
$offset = $userTimeZone->getOffset(new DateTime("now",new DateTimeZone('GMT'))); // Offset in seconds
$seconds = abs($offset);
$sign = $offset > 0 ? '+' : '-';
$hours = floor($seconds / 3600);
$mins = floor($seconds / 60 % 60);
$secs = floor($seconds % 60);
return sprintf("(GMT$sign%02d:%02d)", $hours, $mins, $secs);
}
$timezones = array(
'Pacific/Midway' => toGmtOffset('Pacific/Midway' ). " Midway Island",
'US/Samoa' => toGmtOffset('US/Samoa' ). " Samoa",
'US/Hawaii' => toGmtOffset('US/Hawaii' ). " Hawaii",
'US/Alaska' => toGmtOffset('US/Alaska' ). " Alaska",
'US/Pacific' => toGmtOffset('US/Pacific' ). " Pacific Time (US & Canada)",
'America/Tijuana' => toGmtOffset('America/Tijuana' ). " Tijuana",
'US/Arizona' => toGmtOffset('US/Arizona' ). " Arizona",
'US/Mountain' => toGmtOffset('US/Mountain' ). " Mountain Time (US & Canada)",
'America/Chihuahua' => toGmtOffset('America/Chihuahua' ). " Chihuahua",
'America/Mazatlan' => toGmtOffset('America/Mazatlan' ). " Mazatlan",
'America/Mexico_City' => toGmtOffset('America/Mexico_City' ). " Mexico City",
'America/Monterrey' => toGmtOffset('America/Monterrey' ). " Monterrey",
'Canada/Saskatchewan' => toGmtOffset('Canada/Saskatchewan' ). " Saskatchewan",
'US/Central' => toGmtOffset('US/Central' ). " Central Time (US & Canada)",
'US/Eastern' => toGmtOffset('US/Eastern' ). " Eastern Time (US & Canada)",
'US/East-Indiana' => toGmtOffset('US/East-Indiana' ). " Indiana (East)",
'America/Bogota' => toGmtOffset('America/Bogota' ). " Bogota",
'America/Lima' => toGmtOffset('America/Lima' ). " Lima",
'America/Caracas' => toGmtOffset('America/Caracas' ). " Caracas",
'Canada/Atlantic' => toGmtOffset('Canada/Atlantic' ). " Atlantic Time (Canada)",
'America/La_Paz' => toGmtOffset('America/La_Paz' ). " La Paz",
'America/Santiago' => toGmtOffset('America/Santiago' ). " Santiago",
'Canada/Newfoundland' => toGmtOffset('Canada/Newfoundland' ). " Newfoundland",
'America/Buenos_Aires' => toGmtOffset('America/Buenos_Aires' ). " Buenos Aires",
'Atlantic/Stanley' => toGmtOffset('Atlantic/Stanley' ). " Stanley",
'Atlantic/Azores' => toGmtOffset('Atlantic/Azores' ). " Azores",
'Atlantic/Cape_Verde' => toGmtOffset('Atlantic/Cape_Verde' ). " Cape Verde Is.",
'Africa/Casablanca' => toGmtOffset('Africa/Casablanca' ). " Casablanca",
'Europe/Dublin' => toGmtOffset('Europe/Dublin' ). " Dublin",
'Europe/Lisbon' => toGmtOffset('Europe/Lisbon' ). " Lisbon",
'Europe/London' => toGmtOffset('Europe/London' ). " London",
'Africa/Monrovia' => toGmtOffset('Africa/Monrovia' ). " Monrovia",
'Europe/Amsterdam' => toGmtOffset('Europe/Amsterdam' ). " Amsterdam",
'Europe/Belgrade' => toGmtOffset('Europe/Belgrade' ). " Belgrade",
'Europe/Berlin' => toGmtOffset('Europe/Berlin' ). " Berlin",
'Europe/Bratislava' => toGmtOffset('Europe/Bratislava' ). " Bratislava",
'Europe/Brussels' => toGmtOffset('Europe/Brussels' ). " Brussels",
'Europe/Budapest' => toGmtOffset('Europe/Budapest' ). " Budapest",
'Europe/Copenhagen' => toGmtOffset('Europe/Copenhagen' ). " Copenhagen",
'Europe/Ljubljana' => toGmtOffset('Europe/Ljubljana' ). " Ljubljana",
'Europe/Madrid' => toGmtOffset('Europe/Madrid' ). " Madrid",
'Europe/Paris' => toGmtOffset('Europe/Paris' ). " Paris",
'Europe/Prague' => toGmtOffset('Europe/Prague' ). " Prague",
'Europe/Rome' => toGmtOffset('Europe/Rome' ). " Rome",
'Europe/Sarajevo' => toGmtOffset('Europe/Sarajevo' ). " Sarajevo",
'Europe/Skopje' => toGmtOffset('Europe/Skopje' ). " Skopje",
'Europe/Stockholm' => toGmtOffset('Europe/Stockholm' ). " Stockholm",
'Europe/Vienna' => toGmtOffset('Europe/Vienna' ). " Vienna",
'Europe/Warsaw' => toGmtOffset('Europe/Warsaw' ). " Warsaw",
'Europe/Zagreb' => toGmtOffset('Europe/Zagreb' ). " Zagreb",
'Europe/Athens' => toGmtOffset('Europe/Athens' ). " Athens",
'Europe/Bucharest' => toGmtOffset('Europe/Bucharest' ). " Bucharest",
'Africa/Cairo' => toGmtOffset('Africa/Cairo' ). " Cairo",
'Africa/Harare' => toGmtOffset('Africa/Harare' ). " Harare",
'Europe/Helsinki' => toGmtOffset('Europe/Helsinki' ). " Helsinki",
'Europe/Istanbul' => toGmtOffset('Europe/Istanbul' ). " Istanbul",
'Asia/Jerusalem' => toGmtOffset('Asia/Jerusalem' ). " Jerusalem",
'Europe/Kiev' => toGmtOffset('Europe/Kiev' ). " Kyiv",
'Europe/Minsk' => toGmtOffset('Europe/Minsk' ). " Minsk",
'Europe/Riga' => toGmtOffset('Europe/Riga' ). " Riga",
'Europe/Sofia' => toGmtOffset('Europe/Sofia' ). " Sofia",
'Europe/Tallinn' => toGmtOffset('Europe/Tallinn' ). " Tallinn",
'Europe/Vilnius' => toGmtOffset('Europe/Vilnius' ). " Vilnius",
'Asia/Baghdad' => toGmtOffset('Asia/Baghdad' ). " Baghdad",
'Asia/Kuwait' => toGmtOffset('Asia/Kuwait' ). " Kuwait",
'Africa/Nairobi' => toGmtOffset('Africa/Nairobi' ). " Nairobi",
'Asia/Riyadh' => toGmtOffset('Asia/Riyadh' ). " Riyadh",
'Europe/Moscow' => toGmtOffset('Europe/Moscow' ). " Moscow",
'Asia/Tehran' => toGmtOffset('Asia/Tehran' ). " Tehran",
'Asia/Baku' => toGmtOffset('Asia/Baku' ). " Baku",
'Europe/Volgograd' => toGmtOffset('Europe/Volgograd' ). " Volgograd",
'Asia/Muscat' => toGmtOffset('Asia/Muscat' ). " Muscat",
'Asia/Tbilisi' => toGmtOffset('Asia/Tbilisi' ). " Tbilisi",
'Asia/Yerevan' => toGmtOffset('Asia/Yerevan' ). " Yerevan",
'Asia/Kabul' => toGmtOffset('Asia/Kabul' ). " Kabul",
'Asia/Karachi' => toGmtOffset('Asia/Karachi' ). " Karachi",
'Asia/Tashkent' => toGmtOffset('Asia/Tashkent' ). " Tashkent",
'Asia/Kolkata' => toGmtOffset('Asia/Kolkata' ). " Kolkata",
'Asia/Kathmandu' => toGmtOffset('Asia/Kathmandu' ). " Kathmandu",
'Asia/Yekaterinburg' => toGmtOffset('Asia/Yekaterinburg' ). " Ekaterinburg",
'Asia/Almaty' => toGmtOffset('Asia/Almaty' ). " Almaty",
'Asia/Dhaka' => toGmtOffset('Asia/Dhaka' ). " Dhaka",
'Asia/Novosibirsk' => toGmtOffset('Asia/Novosibirsk' ). " Novosibirsk",
'Asia/Bangkok' => toGmtOffset('Asia/Bangkok' ). " Bangkok",
'Asia/Jakarta' => toGmtOffset('Asia/Jakarta' ). " Jakarta",
'Asia/Krasnoyarsk' => toGmtOffset('Asia/Krasnoyarsk' ). " Krasnoyarsk",
'Asia/Chongqing' => toGmtOffset('Asia/Chongqing' ). " Chongqing",
'Asia/Hong_Kong' => toGmtOffset('Asia/Hong_Kong' ). " Hong Kong",
'Asia/Kuala_Lumpur' => toGmtOffset('Asia/Kuala_Lumpur' ). " Kuala Lumpur",
'Australia/Perth' => toGmtOffset('Australia/Perth' ). " Perth",
'Asia/Singapore' => toGmtOffset('Asia/Singapore' ). " Singapore",
'Asia/Taipei' => toGmtOffset('Asia/Taipei' ). " Taipei",
'Asia/Ulaanbaatar' => toGmtOffset('Asia/Ulaanbaatar' ). " Ulaan Bataar",
'Asia/Urumqi' => toGmtOffset('Asia/Urumqi' ). " Urumqi",
'Asia/Irkutsk' => toGmtOffset('Asia/Irkutsk' ). " Irkutsk",
'Asia/Seoul' => toGmtOffset('Asia/Seoul' ). " Seoul",
'Asia/Tokyo' => toGmtOffset('Asia/Tokyo' ). " Tokyo",
'Australia/Adelaide' => toGmtOffset('Australia/Adelaide' ). " Adelaide",
'Australia/Darwin' => toGmtOffset('Australia/Darwin' ). " Darwin",
'Asia/Yakutsk' => toGmtOffset('Asia/Yakutsk' ). " Yakutsk",
'Australia/Brisbane' => toGmtOffset('Australia/Brisbane' ). " Brisbane",
'Australia/Canberra' => toGmtOffset('Australia/Canberra' ). " Canberra",
'Pacific/Guam' => toGmtOffset('Pacific/Guam' ). " Guam",
'Australia/Hobart' => toGmtOffset('Australia/Hobart' ). " Hobart",
'Australia/Melbourne' => toGmtOffset('Australia/Melbourne' ). " Melbourne",
'Pacific/Port_Moresby' => toGmtOffset('Pacific/Port_Moresby' ). " Port Moresby",
'Australia/Sydney' => toGmtOffset('Australia/Sydney' ). " Sydney",
'Asia/Vladivostok' => toGmtOffset('Asia/Vladivostok' ). " Vladivostok",
'Asia/Magadan' => toGmtOffset('Asia/Magadan' ). " Magadan",
'Pacific/Auckland' => toGmtOffset('Pacific/Auckland' ). " Auckland",
'Pacific/Fiji' => toGmtOffset('Pacific/Fiji' ). " Fiji",
);