I tried to find a good script for getting all timezones and their offset, but there is nothing good, that’s why I spent sometime to make something that can help everybody who is working with different timezones.
$timezones = array(
"zone0" => array (
"name" => "(GMT-10:00) Hawaii",
"value" => "Pacific/Honolulu"
),
"zone1" => array (
"name" => "(GMT-09:00) Alaska",
"value" => "America/Nome"
),
"zone2" => array (
"name" => "(GMT-08:00) Pacific Time (US & Canada); Los Angeles",
"value" => "America/Los_Angeles"
),
"zone3" => array (
"name" => "(GMT-08:00) Pacific Time (US & Canada); Tijuana",
"value" => "America/Tijuana"
),
"zone4" => array (
"name" => "(GMT-07:00) Arizona",
"value" => "America/Phoenix"
),
"zone5" => array (
"name" => "(GMT-07:00) Mountain Time (US & Canada)",
"value" => "America/Denver"
),
"zone6" => array (
"name" => "(GMT-06:00) Central Time (US & Canada)",
"value" => "America/Chicago"
),
"zone7" => array (
"name" => "(GMT-06:00) Eastern Time - Indiana - Starke County",
"value" => "America/Indiana/Knox"
),
"zone8" => array (
"name" => "(GMT-06:00) Mexico City, Tegucigalpa",
"value" => "America/Mexico_City"
),
"zone9" => array (
"name" => "(GMT-06:00) Saskatchewan",
"value" => "America/Regina"
),
"zone10" => array (
"name" => "(GMT-05:00) Bogota, Lima",
"value" => "America/Bogota"
),
"zone11" => array (
"name" => "(GMT-05:00) Eastern Time (US & Canada)",
"value" => "America/New_York"
),
"zone12" => array (
"name" => "(GMT-05:00) Eastern Time - Indiana - most locations",
"value" => "America/Indiana/Indianapolis"
),
"zone13" => array (
"name" => "(GMT-04:30 Caracas",
"value" => "America/Caracas"
),
"zone14" => array (
"name" => "(GMT-04:00) Atlantic Time (Canada)",
"value" => "America/Halifax"
),
"zone15" => array (
"name" => "(GMT-04:00) La Paz",
"value" => "America/La_Paz"
),
"zone16" => array (
"name" => "(GMT-03:30) Newfoundland",
"value" => "America/St_Johns"
),
"zone17" => array (
"name" => "(GMT-03:00) E Argentina (BA, DF, SC, TF)",
"value" => "America/Buenos_Aires"
),
"zone18" => array (
"name" => "(GMT-03:00) NE Brazil (MA, PI, CE, RN, PB)",
"value" => "America/Fortaleza"
),
"zone19" => array (
"name" => "(GMT-03:00) Pernambuco",
"value" => "America/Recife"
),
"zone20" => array (
"name" => "(GMT-03:00) S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS)",
"value" => "America/Sao_Paulo"
),
"zone21" => array (
"name" => "(GMT-02:00) Mid-Atlantic",
"value" => "Atlantic/South_Georgia"
),
"zone22" => array (
"name" => "(GMT-01:00) Azores, Cape Verde Island",
"value" => "Atlantic/Azores"
),
"zone23" => array (
"name" => "GMT (no DST) Tangiers, Casablanca",
"value" => "Africa/Casablanca"
),
"zone24" => array (
"name" => "GMT (Greenwich Mean Time) Dublin, Edinburgh, London",
"value" => "Europe/London"
),
"zone25" => array (
"name" => "(GMT+01:00) Berlin, Stockholm, Rome, Bern, Brussels",
"value" => "Europe/Berlin"
),
"zone26" => array (
"name" => "(GMT+01:00) Lisbon, Warsaw",
"value" => "Europe/Lisbon"
),
"zone27" => array (
"name" => "(GMT+01:00) Paris, Madrid",
"value" => "Europe/Paris"
),
"zone28" => array (
"name" => "(GMT+01:00) Prague",
"value" => "Europe/Prague"
),
"zone29" => array (
"name" => "(GMT+02:00) Athens, Helsinki, Istanbul",
"value" => "Europe/Athens"
),
"zone30" => array (
"name" => "(GMT+02:00) Cairo",
"value" => "Africa/Cairo"
),
"zone31" => array (
"name" => "(GMT+02:00) Eastern Europe",
"value" => "EET"
),
"zone32" => array (
"name" => "(GMT+02:00) Harare, Pretoria",
"value" => "Africa/Harare"
),
"zone33" => array (
"name" => "(GMT+02:00) Israel",
"value" => "Asia/Jerusalem"
),
"zone34" => array (
"name" => "(GMT+03:00) Baghdad, Kuwait, Nairobi, Riyadh",
"value" => "Asia/Baghdad"
),
"zone35" => array (
"name" => "(GMT+03:00) Moscow, St. Petersburg, Volgograd",
"value" => "Europe/Moscow"
),
"zone36" => array (
"name" => "(GMT+03:30) Tehran",
"value" => "Asia/Tehran"
),
"zone37" => array (
"name" => "(GMT+04:00) Abu Dhabi, Muscat, Tbilisi, Kazan",
"value" => "Asia/Tbilisi"
),
"zone38" => array (
"name" => "(GMT+04:30 Kabul",
"value" => "Asia/Kabul"
),
"zone39" => array (
"name" => "(GMT+05:00) Islamabad, Karachi",
"value" => "Asia/Karachi"
),
"zone40" => array (
"name" => "(GMT+05:00) Sverdlovsk, Tashkent",
"value" => "Asia/Yekaterinburg"
),
"zone41" => array (
"name" => "(GMT+05:30) Mumbai, Kolkata, Chennai, New Delhi",
"value" => "Asia/Calcutta"
),
"zone42" => array (
"name" => "(GMT+05:45) Kathmandu, Nepal",
"value" => "Asia/Katmandu"
),
"zone43" => array (
"name" => "(GMT+06:00) Almaty, Dhaka",
"value" => "Asia/Almaty"
),
"zone44" => array (
"name" => "(GMT+06:00) Omsk, Novosibirsk",
"value" => "Asia/Omsk"
),
"zone45" => array (
"name" => "(GMT+07:00) Bangkok, Jakarta, Hanoi",
"value" => "Asia/Bangkok"
),
"zone46" => array (
"name" => "(GMT+07:00) Krasnoyarsk",
"value" => "Asia/Krasnoyarsk"
),
"zone47" => array (
"name" => "(GMT+08:00) Beijing, Chongqing, Urumqi",
"value" => "Asia/Shanghai"
),
"zone48" => array (
"name" => "(GMT+08:00) Hong Kong SAR, Perth, Singapore, Taipei",
"value" => "Australia/Perth"
),
"zone49" => array (
"name" => "(GMT+09:00) Tokyo, Osaka, Sapporo, Seoul, Yakutsk",
"value" => "Asia/Tokyo"
),
"zone50" => array (
"name" => "(GMT+09:30) Adelaide",
"value" => "Australia/Adelaide"
),
"zone51" => array (
"name" => "(GMT+09:30) Darwin",
"value" => "Australia/Darwin"
),
"zone52" => array (
"name" => "(GMT+10:00) Brisbane, Melbourne, Sydney",
"value" => "Australia/Brisbane"
),
"zone53" => array (
"name" => "(GMT+10:00) Guam, Port Moresby",
"value" => "Pacific/Guam"
),
"zone54" => array (
"name" => "(GMT+10:00) Vladivostok",
"value" => "Asia/Vladivostok"
),
"zone55" => array (
"name" => "(GMT+11:00) Hobart",
"value" => "Australia/Hobart"
),
"zone56" => array (
"name" => "(GMT+12:00) Eniwetok, Kwajalein",
"value" => "Pacific/Kwajalein"
),
"zone57" => array (
"name" => "(GMT+12:00) Fiji Islands, Marshall Islands",
"value" => "Pacific/Fiji"
),
"zone58" => array (
"name" => "(GMT+12:00) Kamchatka",
"value" => "Asia/Kamchatka"
),
"zone59" => array (
"name" => "(GMT+12:00) Magadan, Solomon Islands, New Caledonia",
"value" => "Asia/Magadan"
),
"zone60" => array (
"name" => "(GMT+12:00) Wellington, Auckland",
"value" => "Pacific/Auckland"
)
);
//we count all elements of the array
$count_zones = count($timezones);
//we have to get all zones
for($i = 0; $i < $count_zones; $i++) {
//we set the time zone
date_default_timezone_set($timezones['zone'.$i]['value']);
$insert = $db->query("INSERT INTO table (offset, name) VALUES ('". date('Z') ."', '". $timezones['zone'.$i]['name'] ."')");
}
Leave a reply