Php 带有convert_tz的MySQL Select语句

Php 带有convert_tz的MySQL Select语句,php,mysql,Php,Mysql,我试图修改一个select语句来解释用户的本地时区,但我无法理解它 假设它选择用户时区中当天的任何记录,在这种情况下,它硬编码为4小时 目前我正在使用 SELECT * FROM {$this->burnsTable} WHERE DATE(created) = DATE(NOW() - INTERVAL 4 HOUR) 我想将该语句改为使用convert\tz,这可能吗?MySQL不会知道任何关于用户时区的信息。您需要使用javascript或潜在的PHP,尽管最好的方法通常是让用户选

我试图修改一个select语句来解释用户的本地时区,但我无法理解它

假设它选择用户时区中当天的任何记录,在这种情况下,它硬编码为4小时

目前我正在使用

SELECT * FROM {$this->burnsTable} WHERE DATE(created) = DATE(NOW() - INTERVAL 4 HOUR)

我想将该语句改为使用
convert\tz
,这可能吗?

MySQL不会知道任何关于用户时区的信息。您需要使用javascript或潜在的PHP,尽管最好的方法通常是让用户选择一个。在这种情况下,你可以,然后MySQL可以知道他们的时区。然后,您可以使用convert_tz(或者简单地填充您给通话的偏移量)。如果您已经使用设置了数据库,那么您可以存储这些数据并将其与
convert\u tz
一起使用,或者您仍然可以通过执行以下操作将
convert\u tz
与偏移一起使用

SELECT * FROM {$this->burnsTable} WHERE DATE(CONVERT_TZ(created,'+00:00','+4:00')) = CURDATE();

您可以连接到users表来执行此操作,但与其在可能有很多查询的情况下执行此操作,不如将时区存储在PHP用户模型中,然后只传递适当的偏移量,而不必每次都查找它。

很抱歉,我没有弄清楚这一部分,我知道他们的时区。这更多的是关于根据自己的时区从当前日期选择记录的能力。这看起来是我需要的。