4

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

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

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

如何保留时区?

4

1 回答 1

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");

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

于 2012-05-22T23:42:06.763 回答