我有列名为postDate
定义为时间戳。 当我直接打印:格式mysql使用php的时间戳
echo $result['postDate'];
我做得到,什么是存储 在另一方面,当我打印通过日期的功能(例如2011-03-16 16:48:24
):
echo date('F/j/Y',$result['postDate'])
我得到December/31/1969
我在做什么错?
非常感谢
我有列名为postDate
定义为时间戳。 当我直接打印:格式mysql使用php的时间戳
echo $result['postDate'];
我做得到,什么是存储 在另一方面,当我打印通过日期的功能(例如2011-03-16 16:48:24
):
echo date('F/j/Y',$result['postDate'])
我得到December/31/1969
我在做什么错?
非常感谢
试试这个。
date('F/j/Y',strtotime($result['postDate']));
作为时间戳是必需的,没有格式化日期作为第二个参数。 或者你也可以尝试
SELECT UNIX_TIMESTAMP(postDate) as postDateInt from myTable
,而不是SELECT postDate from myTable
,然后在你的代码都没有了。
date('F/j/Y',$result['postDateInt']);
的PHP date函数查找一个int time()
作为第二PARAM。尝试使用strtotime()
echo date('F/j/Y', strtotime($result['postDate']));
这是有用的知道,非常感谢 – 2011-03-17 13:07:09
的PHP`日期()”功能预计用于第二参数的数目 - 即一个Unix时间戳。
您可以使用strtotime()
函数将SQL日期字符串(或几乎任何其他日期字符串)转换为PHP中的时间戳。至少有两个其他答案已经提出这个建议。
但是,我建议你最好先将数据以unix时间戳格式从数据库中取出。您可以通过使用MySQL UNIX_TIMESTAMP()
功能查询做到这一点,如下所示:
SELECT UNIX_TIMESTAMP(mydatefield) AS mydatefield_timestamp FROM mytable
..obviously,取代了字段和表名作为合适的。
然后你会得到时间戳格式日期在PHP中,你返回的数据集,你可以直接进入date()
功能如下:
echo date('F/j/Y',$result['mydatefield_timestamp']);
希望有所帮助。
为什么不根据需要在MySQL查询中格式化日期?
SELECT DATE_FORMAT(postDate, '%M/%D/%Y') as date from table
这似乎是迄今为止最简单的解决方案:D – 2016-12-17 01:47:48
不错的提示,使它工作 – 2011-03-17 13:06:48
嗯,做得好你打我一拳。为你+1。我还推荐UNIX_TIMESTAMP()。当我开始我的答案时,你只有strtitime(),但是当我发布它时,你还添加了SQL位。 – Spudley 2011-03-17 13:15:24
伟大的思想想象一样... hi5 @Spudley – DhruvPathak 2011-03-17 13:18:10