繁体   English   中英

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

[英]Get date closest to today in PHP from database

UPDATE

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

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

你能告诉我MySQL的功能吗?

提前致谢,

你可以使用DATEDIFFABS ......

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

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

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

只是一些建议:

选择当前时刻前最近的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
$query = 'SELECT .... FROM ... WHERE `date` > '.$today.' ORDER BY `date` DESC LIMIT 2';

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM