gpt4 book ai didi

php - 如何检索具有多个时区的记录

转载 作者:行者123 更新时间:2023-11-30 23:08:49 26 4
gpt4 key购买 nike

我正在创建一个网站,我需要在该网站上使用注册用户时区来确定他们是否可以根据他们在仪表板中设置的内容在特定日期接收电子邮件。

我想解决的主要问题是,我希望可以选择在结果顶部显示那些现在有空的用户,以节省人们不得不搜索人员页面以找到有空的用户。

我对可以用来在用户页面上显示/隐藏电子邮件表单的功能有一个粗略的想法...更多关于搜索页面上的查询,该查询将显示所有用户以及如何最好地排序结果.

默认时区为 GMT。

因此,如果今天是星期一并且以下用户的可用性设置为:

USER | timezone | availability_today | emails_received

1 | America/Los_Angeles | 2 | 1 (still available)

2 | America/New_York | 0 | 0 (not available)

3 | Europe/London | 1 | 1 (not available)

我认为更多的是我实际保存/访问的日期/时区的问题。在电子邮件表 ID 中有一个 DATE_SENT 列,因此我可以计算已发送的电子邮件数量以比较它们的可用性。但是,如果该站点是 GMT...如果用户在美国或澳大利亚,那将不是正确的时间...

就像我说的,更多的是关于搜索页面上的选择语句,我无法弄清楚所有的时区。我的主机不支持 CONVERT_TZ。

还是我只在 GMT 中计算所有内容?

我敢肯定,我在问这个问题的时候和你在阅读它时一样困惑。希望有人足够了解并提出建议。它可能不像我想象的那样令人困惑。

编辑:-

问题:

假设是星期一 GMT。在一个用户(不是访客)国家/地区,它是星期二,他们的可用性设置为 0。如果我在服务器上使用 GMT,它是星期一,这样一封电子邮件就会通过。在星期二(用户所在国家/地区的星期三)他们不会得到。

访问者无需注册即可查看搜索结果。如果他们想给用户发电子邮件,他们将需要这样做。用户页面非常简单,因为它只处理一次转化。

最佳答案

几个选项...

(1) 将 GMT 格式的所有内容存储在 datetime 列中。您可以通过执行 MySQL 查询来执行操作,例如

SELECT 'my date' - INTERVAL 5 HOUR

(2) 将所有内容存储在用户当前时区的时间戳列中。您可以通过执行查询来设置当前数据库连接的时区...

SET time_zone = 'Europe/London'

查看当前时区用

SELECT @@time_zone;

用正确的时区替换 'Europe/London'。当 MySQL 使用时间戳时,它在内部以 GMT 格式存储数据。当您拉回数据时,MySQL 会自动将时间转换回客户端当前设置的任何时区。

关于php - 如何检索具有多个时区的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20695261/

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