2012-05-22 5 views
4

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

EDIT: Мое время источником является строка UTC, я хочу, чтобы преобразовать его в другой формат, сохранения часового пояса, как UTC, но PHP конвертирует его в локальный часовой пояс. Код я использовал:

date('Y-m-d H:i::s',strtotime($time_str)); 

Как сохранить часовой пояс?

ответ

9
$src_tz = new DateTimeZone('America/Chicago'); 
$dest_tz = new DateTimeZone('America/New_York'); 

$dt = new DateTime("2000-01-01 12:00:00", $src_tz); 
$dt->setTimeZone($dest_tz); 

echo $dt->format('Y-m-d H:i:s'); 

Обратите внимание, что если время источник UTC, вы можете изменить одну строку следующим образом:

$dt = new DateTime("2000-01-01 12:00:00 UTC"); 

Edit: Похоже, вы хотите пойти в UTC. В этом случае просто используйте "UTC" в качестве параметра для конструктора $dest_tz и используйте исходный блок кода. (И, конечно, вы можете опустить параметр $src_tz, если он совпадает с часовым поясом по умолчанию.)

Смежные вопросы