簡體   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