Generate a dropdown list of timezones in php

By | February 14, 2018

Applications often allow users to select their timezones for reporting the proper time properly. Here is a quick function that can be used to generate a dropdown list of timezones that is easy to read and understand.


function get_timezones()
	$o = array();
	$t_zones = timezone_identifiers_list();
	foreach($t_zones as $a)
		$t = '';
			//this throws exception for 'US/Pacific-New'
			$zone = new DateTimeZone($a);
			$seconds = $zone->getOffset( new DateTime("now" , $zone) );
			$hours = sprintf( "%+02d" , intval($seconds/3600));
			$minutes = sprintf( "%02d" , ($seconds%3600)/60 );
			$t = $a ."  [ $hours:$minutes ]" ;
			$o[$a] = $t;
		//exceptions must be catched, else a blank page
		catch(Exception $e)
			//die("Exception : " . $e->getMessage() . '<br />');
			//what to do in catch ? , nothing just relax
	return $o;

$o = get_timezones();

<select name="time_zone">
	foreach($o as $tz => $label)
		echo "<option value="$tz">$label</option>";
About Silver Moon

A Tech Enthusiast, Blogger, Linux Fan and a Software Developer. Writes about Computer hardware, Linux and Open Source software and coding in Python, Php and Javascript. He can be reached at [email protected].

One thought on “Generate a dropdown list of timezones in php

Leave a Reply

Your email address will not be published.