2010-10-24 39 views

回答

2
SELECT DATE_FORMAT(dPostTime, '%b %e, %l:%i%p') AS post_time 

要使用「今日」取代%B%E:

SELECT 
    CASE WHEN DAY(dPostTime) = DAY(NOW()) THEN 
     DATE_FORMAT(dPostTime, 'Today at %l:%i%p') 
    ELSE 
     DATE_FORMAT(dPostTime, '%b %e, %l:%i%p') END AS post_time 
+0

謝謝你,這是完美的,簡單的逗號我失蹤了。你知道我能如何顯示「今天早上9:02」,只有當日期是今天? – BigMike 2010-10-24 16:26:49

+0

我剛剛編輯我的帖子,像這樣的東西可以工作。 – 2010-10-24 16:32:18

+0

工作得很好,謝謝! – BigMike 2010-10-24 16:48:01

1

TIME_FORMAT function的描述說:

這用於像DATE_FORMAT()功能,但格式字符串可能包含只對時,分,秒和微秒格式說明。

因此,如果你想格式化日期,那麼使用DATE_FORMAT function

0

我建議你更好的選擇是從數據庫中以時間戳值選擇它,然後使用PHP的日期( )函數將文本值輸出到站點。時間戳比格式化日期更容易處理。即使你想要做的只是直接輸出到網頁,我仍然希望將格式保留爲PHP而不是SQL。

SQL:

SELECT UNIX_TIMESTAMP(dPostTime) as post_time ... 

PHP:

print date('M d Y h:iA', $data['post_time']); 
相關問題