转换为UTC而不更改php时区设置

convert to UTC without changing php timezone settings

如何在不更改默认时区的情况下在php中转换日期字符串的时区。 我想将它本地转换为仅显示。 不应修改php时区设置。

编辑:
我的源时间是UTC字符串,我想将其转换为不同的格式,将时区保留为UTC,但php将其转换为本地时区。
我使用的代码是:

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

我如何保留时区?


1
2
3
4
5
6
7
$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,您可以将一行更改为:

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

编辑:看起来您想要转到UTC。 在这种情况下,只需使用"UTC"作为$dest_tz构造函数的参数,并使用原始代码块。 (当然,如果$src_tz参数与默认时区相同,则可以省略它。)