How to find GMT date/time by country name?

Here you'll find the complete list of timezones supported by PHP, which are meant to be used with e.g. date_default_timezone_set(). Support for countries with multiple timezones is also convenient to look up. Take the example of the American region.

<?php
date_default_timezone_set('America/New_York');
echo date('D,F j, Y, h:i:s A');
?>

The list is a complete timezones supported by PHP, which are meant to be used with e.g. date_default_timezone_set().


Not sure if this is what you are looking for but PEAR has a "Date" package available that has a nice example that seems to do what you are asking for.

http://pear.php.net/manual/en/package.datetime.date.examples.php (scroll down to "Converting timezones")


You can search the timezones by country with DateTimeZone::listIdentifiers.

Example, to get the timezones in Portugal:

print_r(DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, "PT"));

gives:

Array
(
    [0] => Atlantic/Azores
    [1] => Atlantic/Madeira
    [2] => Europe/Lisbon
)

You can then do:

$d = new DateTime("now", new DateTimeZone("Atlantic/Azores"));
echo $d->format(DateTime::W3C); //2010-08-14T15:22:22+00:00

As has been repeated over and over again in this thread, you can't get one single time zone per country. Countries have several timezones, and you'll notice that even this page doesn't even select one arbitrarily for some countries like the U.S.A.