Autor YouCode - http://www.youcode.com.ar/php/time-zones-en-php-obtener-las-zonas-horarias-225
Funcion para tomar los timezones en php, podemos hacer uso de la funcion para mostrar los timezones en un formulario de registro o para ajustar nuestro script al timezone que necesitamos
Muchos sitios cuando nos registramos suelen preguntarnos el TIME ZONE, aqui una funcion que nos devuelve las timezones y que podremos poner en un combobox , o tambien para usarlas en nuestros script segun nuestras necesidades.El siguiente codigo muestra como obtener las timezones y como hacer que nuestro script las use, queda claro que deberan adaptar el codigo a sus necesidades, por ej, si la intencion es ponerlas en un cambobox.
function getLocalTimezone() { $iTime = time(); $arr = localtime($iTime); $arr[5] += 1900; $arr[4]++; $iTztime = gmmktime($arr[2], $arr[1], $arr[0], $arr[4], $arr[3], $arr[5], $arr[8]); $offset = doubleval(($iTztime-$iTime)/(60*60)); $zonelist = array ( 'Kwajalein' => -12.00, 'Pacific/Midway' => -11.00, 'Pacific/Honolulu' => -10.00, 'America/Anchorage' => -9.00, 'America/Los_Angeles' => -8.00, 'America/Denver' => -7.00, 'America/Tegucigalpa' => -6.00, 'America/New_York' => -5.00, 'America/Caracas' => -4.30, 'America/Halifax' => -4.00, 'America/St_Johns' => -3.30, 'America/Argentina/Buenos_Aires' => -3.00, 'America/Sao_Paulo' => -3.00, 'Atlantic/South_Georgia' => -2.00, 'Atlantic/Azores' => -1.00, 'Europe/Dublin' => 0, 'Europe/Belgrade' => 1.00, 'Europe/Minsk' => 2.00, 'Asia/Kuwait' => 3.00, 'Asia/Tehran' => 3.30, 'Asia/Muscat' => 4.00, 'Asia/Yekaterinburg' => 5.00, 'Asia/Kolkata' => 5.30, 'Asia/Katmandu' => 5.45, 'Asia/Dhaka' => 6.00, 'Asia/Rangoon' => 6.30, 'Asia/Krasnoyarsk' => 7.00, 'Asia/Brunei' => 8.00, 'Asia/Seoul' => 9.00, 'Australia/Darwin' => 9.30, 'Australia/Canberra' => 10.00, 'Asia/Magadan' => 11.00, 'Pacific/Fiji' => 12.00, 'Pacific/Tongatapu' => 13.00 ); $index = array_keys($zonelist, $offset); if(sizeof($index)!=1) return false; return $index[0]; }y para hacer uso de la funcion, la llamaremos asi (en este caso ajustamos nuestro script al timezone que queremos):
date_default_timezone_set(getLocalTimezone());
http://www.youcode.com.ar/php/time-zones-en-php-obtener-las-zonas-horarias-225