Как найти GMT время / время по названию страны?

Как я могу найти название страны -> дата / время GMT, которое я могу сделать, например:

Пример:

$datetime = new GMT_search('America'); //output: 2010-01-01 00:00:00 $datetime = new GMT_search('India'); //output: 2010-01-01 ??:??:?? $datetime = new GMT_search('China'); //output: 2010-01-01 ??:??:?? 

Я пробовал gmdate() , date_default_timezone_set('Asia/....'); , и ini_set('date.timezone','China'); но это не совсем помогает мне легко найти название страны для даты / времени GMT.

Может ли кто-нибудь, пожалуйста, показать мне пример PHP, который действительно работает?

спасибо

Вы можете искать временные зоны по странам с помощью DateTimeZone::listIdentifiers .

Например, чтобы получить часовые пояса в Португалии:

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

дает:

 массив
 (
     [0] => Атлантик / Азорские острова
     [1] => Атлантик / Мадейра
     [2] => Европа / Лиссабон
 ) 

Затем вы можете:

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

Как повторялось снова и снова в этой теме, вы не можете получить один часовой пояс для каждой страны. В странах есть несколько часовых поясов, и вы заметите, что даже эта страница даже не выбирает одно для некоторых стран, таких как США

Не уверен, что это то, что вы ищете, но у PEAR есть пакет « Дата », который имеет хороший пример, который, похоже, делает то, о чем вы просите.

http://pear.php.net/manual/en/package.datetime.date.examples.php (прокрутите вниз до «Преобразование часовых поясов»)

Здесь вы найдете полный список часовых поясов, поддерживаемых PHP, которые предназначены для использования, например, date_default_timezone_set() . Также удобнее искать поддержку для стран с несколькими часовыми поясами. Возьмем пример американского региона .

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

Список – это полные временные интервалы, поддерживаемые PHP, которые предназначены для использования, например, date_default_timezone_set ().

Вы не можете этого сделать, так как многие страны имеют несколько временных зон. Вместо этого вы можете сохранить часовой пояс по имени города, но я бы использовал целое число с смещением часового пояса в секундах.

Вы можете получить список часовых поясов по континенту / городу с помощью этой функции: http://www.php.net/manual/en/function.timezone-identifiers-list.php

Вы можете получить соответствующее смещение от этой функции: http://www.php.net/manual/en/datetimezone.getoffset.php

Когда у вас есть допустимое смещение, вы можете использовать gmdate () вместо date (), чтобы получить дату в вашем формате без настройки часового пояса / dst. Просто передайте время () + корректировку, которую вы сохранили: http://www.php.net/manual/en/function.gmdate.php

Извините за не размещение ссылок, но мне не хватает кармы.