php - 从数据库中获取最接近今天的日期

标签 php mysql date getdate

更新

我正在制作一个网站的后端。该网站的主要目的是让访问者清楚地了解我们在什么时候组织什么事件。
所以我用各种事件填满了数据库。每个事件都有日期、名称和一些其他信息。

很明显,显示过去的事件对访问者没有帮助,所以我只希望他们显示即将进行的事件。为了节省我自己的大量工作,最好使用 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/

相关文章:

mysql - 自动将数据从数据库导出到 CSV 文件

mysql - 为什么 `"%,2, %"like ",1,2,3 ,"` 返回零?

php - 如何将带有日期和时间 AM/PM 的字符串转换为 24 小时 mysql 时间戳格式

php - 在 2 个不同格式的日期之间搜索

php - ereg 的预期生命周期,迁移到 preg

php - 如何定义默认值主义实体?

php - 在 RecaptchaField.php 中找不到 SilverStripe 类 'SpamProtectorField'

javascript - 使用 angularJS 获取数据

javascript - 减去考虑周末的天数

php - Kohana ORM(自定义查询)与 MySQL ORDER BY 和 GROUP BY