【问题标题】:displaying mysql timestamp correctly正确显示mysql时间戳
【发布时间】:2009-07-13 11:04:31
【问题描述】:

嘿,我正在尝试使用时间戳字段显示日期/时间:

echo $date = date( "D F j", $row['date'] );

但它会返回:12 月 3 日星期三 今天应该返回的时间:7 月 13 日星期一

数据库行的时间戳为:2009-07-13 04:16:31

谢谢。

【问题讨论】:

    标签: php mysql timestamp


    【解决方案1】:

    你应该使用

    SELECT UNIX_TIMESTAMP(`date`) AS `date` FROM ...
    

    这将为您提供正确格式的日期以传递给 PHP 的 date() 函数。

    编辑:

    SELECT *, UNIX_TIMESTAMP(`date`) AS `date` FROM songs WHERE date >= DATE_SUB( NOW( ) , INTERVAL 2 WEEK )
    

    附带说明 - 最好避免在查询中使用 NOW(),因为它会阻止它们被缓存 - 而是在您的应用程序中注入日期。

    【讨论】:

    • Erm... 我如何将它整合到我的 SELECT * 查询中:SELECT * FROM song WHERE date >= DATE_SUB(NOW( ) , INTERVAL 2 WEEK)
    • 感谢 NOW() 我会更改它。
    • 如果没有 NOW(),您将如何编写该查询?
    • 在您的应用中的查询中输入日期:DATE_SUB('2009-07-13', INTERVAL 2 WEEK)
    • 你能做 time();也或 $now = $time();或 $now = date();然后: DATE_SUB( $now , INTERVAL 2 WEEK) ?
    【解决方案2】:

    也可以:

    $date = date( "D F j", strtotime( $row['date'] ) );
    

    但 Greg 的解决方案是更好的编码。

    【讨论】:

    • 啊。这看起来很熟悉。我不记得我以前是怎么做到的。感谢您提供替代方法。
    猜你喜欢
    • 2012-01-06
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    相关资源
    最近更新 更多