Tad Book 3 有個最新文章的區塊,其中有個設定欄位是要設定秀出 N 天內的文章。當我把這區塊裝上後,發現這個設定功能沒有作用,於是重寫了一下,但過程並不順利,原因在於PHP及MySQL的時間戳記長的並不一樣。
在資料表中,「文章最後修改日期」我是用PHP的時間戳記格式來存到資料庫中的,如此,用PHP讀出寫入並不會有多大問題,但一旦要用MySQL函數來操作它,問題就出現了,因為PHP的時間戳記格式MySQL看不懂。
怎麼辦呢?用 MySQL 的 FROM_UNIXTIME() 來轉換即可。整個SQL語法如下(列出7天內的資料):
select * from XX資料表 where TO_DAYS(NOW()) - TO_DAYS( FROM_UNIXTIME(`日期欄位`)) <= 7
TO_DAYS(NOW()) 就是從 0000-00-00 起到今天為止的日數。
TO_DAYS( FROM_UNIXTIME(`日期欄位`)) 就是從 0000-00-00 起到指定日期為止的日數。
TO_DAYS(NOW()) - TO_DAYS( FROM_UNIXTIME(`日期欄位`)) 會得到今天到指定日期之間的天數