格式化数据库中的日期

时间:2013-05-30 15:24:22

标签: php mysql

我希望在回显时在mySQL数据库中转换TIMESTAMP日期。我几年前就已经有了这个工作。

"SELECT id, date, title, summery  FROM blog_posts ORDER BY id DESC"

我确信它曾经是这样的:

"SELECT id, DATE_FORMAT(date, '%e %b %Y'), title, summery  FROM blog_posts ORDER BY id DESC"

首先,我可以将mySQL字段设置为TIMESTAMP,以便我可以自动生成输入日期吗?这不会阻止我在回声中格式化日期吗?

我正在使用的是:

<?php echo $row_blog_posts['date']; ?>

这也是正确的吗?

4 个答案:

答案 0 :(得分:2)

要自动设置时间戳,只需添加一个新的时间戳列,默认值为“CURRENT_TIMESTAMP”。

Ed Gibbs回答了约会问题。

答案 1 :(得分:2)

是的,您可以使用TIMESTAMP格式化DATE_FORMAT。当我在MySQL命令行上尝试这个时:

SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%e %b %Y');

我得到了这个结果:

+--------------------------------------------+
| date_format(current_timestamp, '%e %b %Y') |
+--------------------------------------------+
| 30 May 2013                                |
+--------------------------------------------+

如果您将格式化的列别名为date

,则您的回音将起作用
SELECT
  id, 
  DATE_FORMAT(date, '%e %b %Y') as `date`,
  title,
  summery
FROM blog_posts
ORDER BY id DESC

答案 2 :(得分:0)

而不是在mysql中格式化日期更好的是格式化php中的原始时间戳字段

<?php echo date('Y-m-d H:i', strtotime($row_blog_posts['date'])); ?>

答案 3 :(得分:0)

是的,它是DATE_FORMAT

我认为不可能自动告诉MySQL更改它返回日期的格式,但从维护的角度来看,使用strtotime()和date()在PHP中使用格式要好得多,因为如果你曾经想要更改格式,在代码中更容易做,特别是如果你想在其他地方以不同的格式使用相同的日期/时间。