【发布时间】:2017-12-09 21:54:35
【问题描述】:
在我的服务器上,我保留了操作日志,并使用 MYSQL NOW() 函数生成的时间戳进行跟踪。但问题是生成的时间戳在 UTC 中,我希望生成 NOW() 函数与Asia/Kolkata 的本地时间相对应的时间戳。我尝试了 SET 时区,但它不起作用
$queryt="SET time_zone='Asia/Kolkata'";
mysqli_query($mysqli, $queryt))
我做错了什么?
【问题讨论】:
-
不,你没有。您希望将时间存储为 UTC,然后将其转换为您需要的任何本地时间。请记住,本地时间与查看数据的用户相关。例如,亚洲?加尔各答对你来说可能很棒,但我在美国。如果你给我看带有日期时间戳的东西,我想看到它与我的时区相关。在 PHP 中,DATETIME 类提供强大的支持,可以将任何日期时间值从 UTC 转换为您想要的任何时区。
-
好吧,如果是这样的话,有什么方法可以使用 jquery 等更改以本地时间格式显示的日期时间吗?
-
最好用 PHP 格式化日期。 JavaScript 对时区没有很好的把握
-
我同意 Phil,使用 DATETIME 在服务器端进行。代码很简单。一个更大的问题是你将如何计算出你想要的时区。正如我所说,一种复杂的方法是尝试使用最终用户的 IP 来计算出他们的时区。但是,如果您只想在“亚洲/Kokata”中显示所有内容,那是微不足道的。