以当地时间显示MySQL时间戳

时间:2011-11-06 19:28:48

标签: php mysql timezone

我有一个MySQL数据库,其中包含大量数据,所有数据都以UTC时间存储。

当用户查询该数据库时,我希望他们能够在本地时区查看数据。

我不希望每次都计算偏移量并使用PHP代码更改时间戳。还有其他办法吗?

3 个答案:

答案 0 :(得分:2)

您可以使用localtime()函数获取本地时间并从数据库中查找匹配的记录。

答案 1 :(得分:1)

可以使用mysql设置每个连接的时区,如下所示:

SET time_zone = 'America/Los_Angeles';

SET time_zone = '-8:00';

但对我来说,最好的解决方案是localtime();

答案 2 :(得分:0)

在我工作的地方,我们支持全球客户,并且发现将服务器的系统时间设置为UTC更容易。这使我们能够确保一致的日志记录和基本服务时间戳,如果我们需要将服务器添加到不同时区的池中,我们不必担心本地时间是否设置正确(b / c它已经是UTC)。

然而,如OP提到的,有一个成本,我们的应用程序必须计算时区。我们为客户分配时区,登录客户端站点的用户获取客户端的时区,因此我们必须每次都计算用于演示的日期/时间戳。我们偶尔会对我们的应用进行分析,这些时区转换几乎无法注册。

在一天结束时,在处理时区转换时,这取决于您和您的情况。