选择2010-10-24 09:02:46发表于'2010年10月24日上午9:02'

时间:2010-10-24 16:18:10

标签: php mysql

如何从2010-10-24 09:02:46将我的日期字段从mysql转换为在我的网站上发布为'2010年10月24日上午9:02'

(SELECT TIME_FORMAT(`dPostTime`, '%b %e %l:%i %p')) as post_time 

这不会发布日期,只发布时间。

非常感谢!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

TIME_FORMAT function的说明:

  

这与DATE_FORMAT()函数类似,但格式字符串可能只包含小时,分钟,秒和微秒的格式说明符。

如果您想格式化日期,请使用DATE_FORMAT function

答案 2 :(得分:0)

我建议更好的选择是从数据库中选择它作为时间戳值,然后使用PHP的date()函数将文本值输出到站点。时间戳比格式化日期更容易使用。即使您只想将其直接输出到网页,我仍然希望将格式保留为PHP而不是SQL。

SQL:

SELECT UNIX_TIMESTAMP(dPostTime) as post_time ...

PHP:

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