更新
我正在制作一个网站的后端。该网站的主要目的是让访问者清楚地了解我们在什么时候组织什么事件。
所以我用各种事件填满了数据库。每个事件都有日期、名称和一些其他信息。
很明显,显示过去的事件对访问者没有帮助,所以我只希望他们显示即将进行的事件。为了节省我自己的大量工作,最好使用 PHP/MySQL 完成所有工作并仅向访问者显示接下来的 2 个事件。
你能告诉我一个 MySQL 函数来做这个吗?
提前致谢
最佳答案
一些建议:
选择当前时刻之前最近的 2 个事件和当前时刻之后最近的 2 个事件。
(SELECT *
FROM ...
WHERE `time` < NOW()
ORDER BY `time` DESC
LIMIT 2)
UNION
(SELECT *
FROM ...
WHERE `time` > NOW()
ORDER BY `time` ASC
LIMIT 2)
此时您在 PHP 中最多有 4 个事件。但是你只需要 2. 最近的 2. 要找出最接近的,你可以使用 strtotime
并检查事件的时间戳与调用 time()
可以获得的当前时间戳之间的差异。之后,您只保留 2 个最接近的事件。
请注意,这可以直接从 MySQL 实现,但那样更难。
@最新更新。如果您不想了解更多,阅读本文就足够了。
只需使用这个查询:
SELECT *
FROM ...
WHERE `time` > NOW()
ORDER BY `time` ASC
LIMIT 2
关于php - 从数据库中获取最接近今天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5704253/