php - 选择所有日期等于今天但时区差异

标签 php mysql date

我们想获取今天添加的所有行,我们有列名 dnt(timestamp),但我们的时区比服务器时区早 12 小时。那么什么是 SQL 查询来获得当前结果。我们目前正在使用以下...

SELECT * FROM messages WHERE user = '$user' AND DATE(dnt) = CURDATE();

但由于时区差异,它没有给出正确的结果。

谢谢。

最佳答案

我建议所有日期都应存储在 GMT 时区中。然后在显示时在 View 中转换。这样,当您需要查询某个日期时,首先将客户端日期转换为 GMT 并将其直接传递给您的 SQL 查询。 SQL 服务器有一些函数可以获取 GMT 日期而不是服务器日期。您还可以将 GMT 时区的当前日期作为查询参数传递,而不是使用 SQL 函数(使用 PHP 函数获取 gmt 日期)。

参见:gmmktime例如

关于php - 选择所有日期等于今天但时区差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218643/

相关文章:

php - 自动插入换行符?

mysql - 更改表错误 ERROR 1347 (HY000) : 'table-name' is not BASE TABLE in mysql

php - Mysql增加列的最佳方法?

r - 如何将日期格式(d.m.Y)更改为年份(Y)并查找年度累计总和?

mysql - 使用 DATE 和 DATETIME 时行数不同

php - 当 RabbitMQ 有消息时,它会为消费者调用回调函数吗?

javascript - php node.js redis session 共享身份验证

php - 从本地主机 :8888 in objective c using json 获取数据时出现问题

mysql - 查询中的多个左连接返回不正确的计数

Javascript 从日期中减去天数