Как я могу найти название страны -> дата / время 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
Извините за не размещение ссылок, но мне не хватает кармы.