Вопрос по php, timezone, datetime – Как преобразовать дату и время UTC в другой часовой пояс?

23

Как я могу преобразовать дату как это:2012-07-16 01:00:00 +00 (это вUTC +00:00 часовой пояс) вUTC +04:00 часовой пояс? Обеспечение правильного перехода на летнее время?

Если бы это был дубликат, этот комментарий вряд ли был бы бесполезен. Matt
@ Мэтт не совсем, он спрашивает, как преобразовать строковое смещение часового пояса в реальное смещение. Fluffeh

Ваш Ответ

3   ответа
0

Чтобы помочь с решением, вам нужно получить последнюю часть строки (часть смещения) и сравнить ее с простым поиском. Вы можете использовать регулярное выражение илиsubstr() (возможно), чтобы получить часть offest. Затем, когда у вас есть значение + или -, используйте максимум 24 поиска для возможных часовых поясов, которые вы можете использовать с возможными PHP.часовые пояса - если смещение одно и то же, кого это волнует, какова фактическая страна / местоположение?

Использованиеdate_default_timezone_set применить правильный.

-2

Вы также можете использовать время по Гринвичу и впоследствии преобразовать его в свое требование

<?php
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

GMT означает среднее время по Гринвичу, которое распространено во всем мире.

40

DateTime а такжеDateTimeZone.

$date = new DateTime('2012-07-16 01:00:00 +00');
$date->setTimezone(new DateTimeZone('Europe/Moscow')); // +04

echo $date->format('Y-m-d H:i:s'); // 2012-07-15 05:00:00 
@Florent Если у меня есть только смещение "+ 04", как я могу изменить этот подход?
Тастро, Москва действительно восточнее UTC. Получите карту часовых поясов и ознакомьтесь с ней, прежде чем пытаться использовать часовые пояса, пожалуйста ...
+1 за использование DateTime.

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