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

时间:2011-04-18 14:19:51

标签: php mysql date getdate

更新

我正在建立一个网站的后端。该网站的意思是向访客提供我们正在组织的活动的时间和活动 所以我在数据库中填写了各种活动。每个活动都有日期,名称和其他一些信息。

很明显,过去展示活动并没有帮助访客,因此我只希望他们展示即将开展的活动。为了节省自己的大量工作,做PHP / MySQL的所有工作并向访问者展示下两个事件将是很好的。

你能告诉我MySQL功能吗?

提前致谢,

3 个答案:

答案 0 :(得分:3)

您可以使用DATEDIFFABS ...

SELECT * FROM `activities` ORDER BY ABS(DATEDIFF(NOW(), `date`)) LIMIT 2

从更新后的问题中,只考虑未来的活动......所以......

SELECT * FROM `activities` WHERE `date` > NOW() ORDER BY `date` LIMIT 2

答案 1 :(得分:3)

只是一些建议:

选择当前时刻前最近的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并查看事件的时间戳和你可以通过调用{{1}获得的当前时间戳之间的差异}。之后,您只保留最近的2个事件。

请注意,这可以直接从MySQL实现,但这样更难。


@Latest update。如果您不想了解更多内容,请阅读此内容就足够了。

只需使用此查询:

time()

答案 2 :(得分:0)

$query = 'SELECT .... FROM ... WHERE `date` > '.$today.' ORDER BY `date` DESC LIMIT 2';

$today取决于您的date列类型。