我将事件存储在MySQL数据库中,开始日期和时间以UNIX格式存储在列'startTimeStamp‘中。
当我尝试使用简单查询获取特定日期的事件时
从events FROM_UNIXTIME(startTimeStamp,'%Y-%m-%d') = '2013-08-20‘中选择*
当时间戳下的日期和时间大于凌晨2点(即2013-08-2003:00:00)时,一切正常工作,但当时间较早时,则不在同一天显示。
简单的例子:我有两个事件-相同的日期,但不同的时间
当我运行前面提到的查询时,我将得到第一个查询,而不是第二个查询。为了得到第二个,我必须查询前一天的事件(2013-08-19)。
你知道为什么吗?也许我漏掉了什么?
非常感谢!
发布于 2013-08-19 11:33:19
看看你的时区是什么:
SELECT @@global.time_zone, @@session.time_zone;然后正确地设置它:
SET time_zone = timezonename;编辑:这可能有帮助:MySQL日期时间字段和夏时制--我如何引用“额外”小时?
发布于 2013-08-19 11:34:27
我想你可能选择了一个适用夏令时的地方。这种情况下的时间转移主要是在凌晨2点到凌晨3点之间,这可能会导致不同的日子。
发布于 2013-08-19 11:37:28
基本上是因为Unix时间戳的意思。这只是从1-1-1970秒数,所以从技术上来说,1376949600的数值可能仍然是前一天,取决于您的时区。
就我而言:
echo date("d-m-Y h:i", 1376949600);
// output: 19-08-2013 11:00https://stackoverflow.com/questions/18312382
复制相似问题