How can I find country name -> GMT date/time to that I can do like following:
Example:
$datetime = new GMT_search(\'America\'); //output: 2010-01-01
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.