Несколько пулевых точек из предыдущего ответа :
xxx@gmail.com
. Пользователь reply-to
, если вам нужны ответы, чтобы получить другой адрес. Вы можете искать часовые пояса по стране с помощью DateTimeZone :: listIdentifiers
.
Пример, чтобы получить часовые пояса в Португалии:
print_r(DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, "PT"));
дает:
Array ( [0] => Atlantic/Azores [1] => Atlantic/Madeira [2] => Europe/Lisbon )
Затем вы можете сделать:
$d = new DateTime("now", new DateTimeZone("Atlantic/Azores"));
echo $d->format(DateTime::W3C); //2010-08-14T15:22:22+00:00
Как неоднократно повторялось в этом потоке, вы не можете получить один часовой пояс для каждого страна. В странах есть несколько часовых поясов, и вы заметите, что даже на этой странице даже не выбирается произвольно для некоторых стран, таких как США
Здесь вы найдете полный список часовых поясов, поддерживаемых 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 ().
Не уверен, что это именно то, что вы ищете, но PEAR имеет доступный пакет « Date », в котором есть хороший пример, который, кажется, делает то, что вы просите.
http://pear.php.net/manual/en/package.datetime.date.examples.php (прокрутите вниз до «Преобразование часовых поясов»)
Вы не можете сделать это именно так, поскольку многие страны имеют несколько часовых поясов. Вместо этого можно хранить часовой пояс по названию города, но я бы использовал целое число со смещением часового пояса в секундах.
Вы можете получить список часовых поясов по континенту/городу с помощью этой функции: [www.php.net/manual/en/function.timezone-identifiers-list.php][1]
Вы можете получить соответствующее смещение из этой функции: [www.php.net/manual/en/datetimezone.getoffset.php][2]
Когда у вас есть действительное смещение, вы можете использовать gmdate() вместо date(), чтобы получить дату в вашем формате без корректировки таймзоны/dst. Просто передайте time() + корректировку, которую вы сохранили: [www.php.net/manual/en/function.gmdate.php][3]