在朋友的帮助下,我得到了一个跟踪不同统计数据的网页,并将其保存在SQL
数据库中。
返回的信息之一是将最新分数提交到数据库的时间。它工作正常,但是webhost处于不同的时区,我无法更改该时区。
因此,我正在考虑将查询更改为返回分数添加多久之前的查询。
当前代码:
$statement = $adapter->query("
select name,
SUM(score_1) as score_1,
SUM(score_2) as score_2,
SUM(score_3) as score_3,
(SUM(score_1)+SUM(score_2)+SUM(score_3)) as total,
DATE_FORMAT(MAX(creation_time), '%d %b %H:%i') as creation_time
from score_entry
WHERE DATE(creation_time) = CURDATE()
group by name ORDER BY total DESC");
它抓取过去一天(从今天00:00开始)存储的信息,我不确定这是否也受到错误时区的影响。
经过大量的搜索,我似乎无法找到解决我确切问题的方法。
我试图在MySQL中设置时区,但它是Namecheap
的共享主机,他们不允许。
答案 0 :(得分:1)
使用SET time_zone = timezone;
命令,您可以按连接设置时区。
此外,将日期存储在TIMESTAMP
列中会使MySQL将时间转换为UTC,然后在您访问时将其转换回当前时区。因此,它使存储和检索时区不可知。
答案 1 :(得分:0)
使用发布的解决方案在PHP脚本中设置时区。也可以使用PHP的日期函数向您的查询发送日期时间。