一尘不染

PHP中的时区转换

php

谁能建议一种简单的方法来将日期和时间转换为php中的不同时区?


阅读 561

收藏
2020-05-26

共1个答案

一尘不染

您可以为此使用datetime对象或其函数别名:

date_default_timezone_set('Europe/London');

$datetime = new DateTime('2008-08-03 12:35:23');
echo $datetime->format('Y-m-d H:i:s') . "\n";
$la_time = new DateTimeZone('America/Los_Angeles');
$datetime->setTimezone($la_time);
echo $datetime->format('Y-m-d H:i:s');

编辑评论

但我无法使用此方法,因为当用户从不同位置登录时,我需要在不同时区显示日期

那不是问题。用户登录后,您将确定其时区并将其设置为DateTime对象,如图所示。我在我的一个项目中使用了类似的方法,它的工作原理很吸引人。

在数据库中,我需要获取任何单个时区中的日期,然后只有它才能正确处理

您可以将时间存储为一个时区中的时间戳或日期时间。查询DateTime字段时,您可以将DateTime对象中的时间转换为该时区,或者-
如果您的数据库支持,则使用选定的时区进行查询。

2020-05-26