用PHP格式化MySQL日期

时间:2011-09-09 05:28:43

标签: php mysql datetime

我的datetime类型表中有一列。我想以特定格式显示它们,所以我尝试使用它:

echo date( 'm/d/Y - g:h A', strtotime($dateFromMySQL) );

......完全把一切都搞砸了。


如果我只是echo $dateFromMySQL;(在一个循环中),我得到了这个:

  

2011-09-10 01:03:04
  2011-09-10 00:52:47
  2011-09-10 00:40:26
  等等...

......这是正确的。


如果我echo strtotime($dateFromMySQL);,我明白了:

  

1315630984
  1315630367个
  1315629626个
  等等...

......这可能是正确的。我不知道。


然而,当我echo date( 'm/d/Y - g:h:s A', strtotime($dateFromMySQL) );时,我明白了:

  

09/10/2011 - 1:01:04 AM   09/10/2011 - 12:12:47上午   09/10/2011 - 12:12:26   等等...

......这显然是错误的。


所以,我的问题是,我做错了什么? 我在某种程度上没有正确使用strtotimedate吗?

4 个答案:

答案 0 :(得分:2)

它应该是m / d / Y - g: i :s A

答案 1 :(得分:1)

您使用了错误的日期格式h

正确行为

date( 'm/d/Y - g:i:s A' ...

PHP日期函数中的h & i是什么?

  

h = 12小时格式的一小时前导零   i =带前导零的分钟

答案 2 :(得分:1)

我认为你正在寻找m/d/Y - g:i:s A

h - 小时
i - 分钟

答案 3 :(得分:0)

是。你要求12小时格式的小时,然后24小时格式的小时。

使用'g:i:s'代替'g:h:s'

此外,我在尝试时收到警告:

  

PHP警告:strtotime():依赖系统是不安全的   时区设置。您必需使用date.timezone设置   或者date_default_timezone_set()函数。如果您使用过任何一个   那些方法,你最有可能仍然得到这个警告   拼写错误的时区标识符。我们选择了“欧洲/柏林”   第1行的命令行代码中的'CEST / 2.0 / DST'而不是

所以这可能是 - 或成为 - 另一个问题。