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

Несколько пулевых точек из предыдущего ответа :

  • Самое главное: относится ли адрес отправителя («От») к домену, который выполняется на сервере вы отправляете E-Mail? Если нет, сделайте это так. Никогда не используйте адреса отправителя, такие как xxx@gmail.com. Пользователь reply-to, если вам нужны ответы, чтобы получить другой адрес.
  • Является ли ваш сервер черным списком (например, проверьте IP на spamhaus.org)? Это возможность, когда вы находитесь на совместном хостинге, когда соседи ведут себя плохо.
  • Отправлены ли письма фильтром спама? Откройте учетную запись с freemailer с папкой спама и узнайте. Также попробуйте отправить почту на адрес без какой-либо фильтрации спама.
  • Возможно, вам нужен пятый параметр «-f» почты () для добавления адреса отправителя? (См. Команду mail () в руководстве по PHP)
  • Если у вас есть доступ к файлам журналов, проверьте их, конечно.
  • Вы проверяете адрес «from:» для возможных отсканировать письма («Возвращено отправителю»)? Вы также можете настроить отдельный адрес «error-to».

13
задан Gumbo 14 August 2010 в 13:40
поделиться

4 ответа

Вы можете искать часовые пояса по стране с помощью 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

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

34
ответ дан 1 December 2019 в 19:01
поделиться

Здесь вы найдете полный список часовых поясов, поддерживаемых 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 ().

2
ответ дан 1 December 2019 в 19:01
поделиться

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

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

2
ответ дан 1 December 2019 в 19:01
поделиться

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

Вы можете получить список часовых поясов по континенту/городу с помощью этой функции: [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]

1
ответ дан 1 December 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: