2011-11-24 60 views
1

我的数据库对每个文章都使用一个TIMESTAMP列,每当文章写入数据库时​​就会向其写入数据。这是由数据库使用CURRENT_TIMESTAMP作为列的默认值自动完成的。将mysql时间戳格式化为有意义的内容

不幸的是,日期显示为2011-11-24 19:26:57,这对于任何事情都不理想。

我想要做的就是以与Thu 24 Nov 2011 19:26:57相同的格式将其写入我的页面。

有什么建议吗?

+0

您是否尝试过寻找[日期](http://www.php.net/manual/en/function.date.php)php函数。 –

回答

0

你可以使用MySQL内建函数格式化日期时间列

SELECT DATE_FORMAT(your_col, '%a %d %b %Y %k:%i:%s') 
FROM your_table 
+0

我想你已经交换了参数的顺序。 –

+0

@JanTuroň:我认为不... – Marco

0

还有MySQL的功能DATE_FORMAT

例如SELECT DATE_FORMAT('2009-10-04 22:23:00','%W%M%Y');

- > '星期日2009年10月'

3

这是不理想的 - 好 - 什么。

你错了。这确实是排序日期的理想选择。

而对于格式化PHP和mysql分别具有strtotime()+ date()和DATE_FORMAT()。

另请注意,您可能希望将TIMESTMP更改为DATETIME格式,因为前者可能会因意外而轻易更改,从而破坏整个数据库。

+0

完全同意你:upvoted! – Marco

+0

我最初考虑过日期时间格式,但是我无法为其设置默认约束。这就是我带时间戳的原因。 – Ortund

+0

@Logan你可以随时手动设置它,以及其他INSERT字段 - 不需要默认值。代码中的默认值更少 - 不易发现的错误。 –

-1

我希望这是对你有好处

<?php date("D M j G:i:s T Y"); ?> 
<?php date("F j, Y, g:i a"); ?> 

周六09月09日4点十三分18秒CDT 2006

2006年9月9日上午04时13

0

你确实有一对夫妇的选择。其中之一是使用MySQL directly

一个例子,以适应所需要的将是:

SELECT field1, field2, DATE_FORMAT(dateField, '%a %e %b %Y %T') AS theDateFROM table; 

另一种选择是从PHP直接与时间戳使用date()strtotime()功能:

<?php echo date("D j M Y H:i:s", strtotime($datetime_from_database)); ?>