Установка времени в соответствии с часовым поясом из базы данных - PullRequest
0 голосов
/ 01 апреля 2011

Я хочу создать систему, которая отображает время, зависящее от часового пояса в конкретной стране. Например. таблица в моей базе данных содержит названия стран в одном поле, а в столбце рядом с ним - часовые пояса, сравниваемые по Гринвичу, такие как -0100 или -0200.

То, что мне нужно сделать на веб-странице, - это установить текущее время по Гринвичу ($ time), а затем извлечь информацию из базы данных и изменить значение $ time на GMT -1 или GMT -2.

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

Спасибо за любую помощь

Edit:

Пока у меня есть этот код:

    <?php

$time = date("H:i:s", time());
echo $time;
echo "<br/><br/>";
$myDateTime = new DateTime($time, new DateTimeZone('GMT'));
$myDateTime->setTimezone(new DateTimeZone('Antarctica/South_Pole'));
echo $myDateTime->format('Y-m-d H:i');
?>

, который, кажется, выполняет эту работу, и я мог бы ввести в базу данных «Антарктида / Южное_поле», а не время по Гринвичу - / +. Будет ли это хорошо работать в долгосрочной перспективе?

Кроме того, используя этот метод, будет ли работать летнее время в порядке?

1 Ответ

0 голосов
/ 05 апреля 2011

Использование DateTimeZone - правильный путь.

Если вы предоставите ему ключи zoneinfo (например, America / New_York или Antarctica / South_Pole, как в вашем примере), летнее время будет учтено в результате, что не так, если у вас есть наивная база данных.сохранено только смещение UTC.

...