Как преобразовать часовой пояс строки даты в php, не меняя часовой пояс по умолчанию. Я хочу преобразовать его локально, чтобы отображать только. Настройка php-часового пояса не должна изменяться.
EDIT: Мое исходное время – это строка UTC, я хочу преобразовать ее в другой формат, сохраняя часовой пояс как UTC, но php преобразует его в локальный часовой пояс. Код, который я использовал, был:
date('Ymd H:i::s',strtotime($time_str));
Как сохранить часовой пояс?
$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('Ymd H:i:s');
Обратите внимание, что если исходное время UTC, вы можете изменить одну строку:
$dt = new DateTime("2000-01-01 12:00:00 UTC");
Edit: Похоже, вы хотите перейти в UTC. В этом случае просто используйте "UTC"
в качестве параметра для конструктора $dest_tz
и используйте исходный блок кода. (И, конечно, вы можете опустить параметр $src_tz
если он совпадает с часовым поясом по умолчанию.)