gpt4 book ai didi

php - 使用访问者的时区获取昨天的 mySQL 数据

转载 作者:行者123 更新时间:2023-11-29 01:30:17 26 4
gpt4 key购买 nike

我使用 mySQL 成功获取了昨天的数据

SELECT COUNT(*) as total FROM  track
WHERE FROM_UNIXTIME(date,'%Y-%m-%d %h:%m:%s') > DATE_ADD(NOW(), INTERVAL -2 DAY)
AND FROM_UNIXTIME(date,'%Y-%m-%d %h:%m:%s') < DATE_ADD(NOW(), INTERVAL -1 DAY)

但是,它使用服务器的时区。我的服务器位于美国,如果访问者来自与美国不同的时区(例如:亚洲或欧洲),我昨天的数据对用户来说将不正确。我想根据访问者的时区获取正确的昨天结果。我可以在 php 中获取访问者时区,但我不知道如何在 mySQL 中使用它。

最佳答案

不要将时间存储为 UNIX 时间戳,而是存储为 TIMESTAMP .然后你可以简单地设置 time_zone一切都将按照您的意愿进行转换:

SET time_zone = '+10:00';

SELECT COUNT(*) AS total
FROM track
WHERE date > NOW() - INTERVAL 2 DAY
AND date < NOW() - INTERVAL 1 DAY

否则,您可以使用CONVERT_TZ() :

SELECT COUNT(*) AS total
FROM track
WHERE date > UNIX_TIMESTAMP(CONVERT_TZ(NOW() - INTERVAL 2 DAY, '+3:00', '+10:00'))
AND date < UNIX_TIMESTAMP(CONVERT_TZ(NOW() - INTERVAL 1 DAY, '+3:00', '+10:00'))

关于php - 使用访问者的时区获取昨天的 mySQL 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15822858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com