php - это - узнать время в другом городе




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

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

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

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

спасибо


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

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

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

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





localization