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

PHP time localisation server to region

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

2015-08-05 18:50:00

我的电脑时间是:

2015-08-05 21:50:00

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

您需要考虑时区。 DateTime() and 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