PHP时间本地化服务器到区域

时间:2015-08-05 18:58:15

标签: php timezone

在我的服务器数据库中,我有一个带有服务器时间的 datetime 属性,我的数据是这样的:

2015-08-05 18:50:00

在我的计算机时间是:

2015-08-05 21:50:00

如何将服务器数据库的服务器时间转换为不同区域的不同用户的本地时间?例如,我需要为我的电脑增加3个小时。

1 个答案:

答案 0 :(得分:1)

您需要考虑时区。 DateTime()DateTimeZone()让这很容易。

$datetime = new DateTime(); // now in server time zone
echo $datetime->format('Y-m-d H:i:s');
$datetime->setTimezone(new DateTimeZone('America/New_York')); // change TZ to New York (ET)
echo $datetime->format('Y-m-d H:i:s');

您只需将时区更改为适用于您的方案的时区即可。有list of timezones可供选择。

如果您想确保启动时区是一致的,以防服务器时区发生变化,您也可以明确声明这一点。

$datetime = new DateTime(null, new DateTimeZone('America/Los_Angeles')); 
echo $datetime->format('Y-m-d H:i:s');
$datetime->setTimezone(new DateTimeZone('America/New_York')); 
echo $datetime->format('Y-m-d H:i:s');

Demo