Преобразование часового пояса в php

Кто-либо может предложить, чтобы легкий метод преобразовал дату и время в различные часовые пояса в php?

50
задан BlitZ 20 January 2014 в 18:38
поделиться

1 ответ

Для этого вы можете использовать объект datetime или их псевдонимы функций:

Пример ( сокращено из Руководства PHP )

date_default_timezone_set('Europe/London');

$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->format('Y-m-d H:i:s') . "\n";
$la_time = new DateTimeZone('America/Los_Angeles');
$datetime->setTimezone($la_time);
echo $datetime->format('Y-m-d H:i:s');

Редактировать относительно комментариев

но я не могу использовать этот метод, потому что мне нужно отображать дату в разных часовых поясах при входе пользователя из разных мест

Это не проблема. Когда пользователь входит в систему, вы определяете его часовой пояс и устанавливаете его в свой объект DateTime, как показано. Я использую аналогичный подход в одном из своих проектов, и он отлично работает.

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

Вы сохраняете время либо как отметку времени, либо как дату-время в одном часовом поясе. Когда вы запрашиваете поле DateTime, вы либо конвертируете время в объекте DateTime в этот часовой пояс, либо - если ваша база данных поддерживает это - запрашиваете с выбранным часовым поясом.

110
ответ дан 7 November 2019 в 10:31
поделиться
Другие вопросы по тегам:

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