我有一个MySQL数据库,其中包含大量数据,所有数据都以UTC时间存储。
当用户查询该数据库时,我希望他们能够在本地时区查看数据。
我不希望每次都计算偏移量并使用PHP代码更改时间戳。还有其他办法吗?
答案 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提到的,有一个成本,我们的应用程序必须计算时区。我们为客户分配时区,登录客户端站点的用户获取客户端的时区,因此我们必须每次都计算用于演示的日期/时间戳。我们偶尔会对我们的应用进行分析,这些时区转换几乎无法注册。
在一天结束时,在处理时区转换时,这取决于您和您的情况。