我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
当前回答
您还可以让您的查询以Unix时间戳的形式返回时间。这将消除调用strtotime()的需要,并使PHP方面的工作不那么密集……
select UNIX_TIMESTAMP(timsstamp) as unixtime from the_table where id = 1234;
然后在PHP中,只需使用date()函数以任何您喜欢的方式格式化它。
<?php
echo date('l jS \of F Y h:i:s A', $row->unixtime);
?>
or
<?php
echo date('F j, Y, g:i a', $row->unixtime);
?>
我喜欢这种方法,而不是使用MySQL的DATE_FORMAT函数,因为它允许您重用相同的查询来获取数据,并允许您更改PHP中的格式。
有两个不同的查询只是为了改变日期在UI中的外观,这很烦人。
其他回答
忘记所有。只使用:
$date = date("Y-m-d H:i:s",strtotime(str_replace('/','-',$date)))
这将格式化SQL查询中的字段:
SELECT DATE_FORMAT( `fieldname` , '%d-%m-%Y' ) FROM tablename
这会有用的……
echo date('m/d/y H:i (A)',strtotime($data_from_mysql));
使用PHP版本4.4.9和MySQL 5.0,这对我来说是有效的:
$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate
PubDate是MySQL中的列。
更简单的方法是直接在MySQL查询中格式化日期,而不是PHP。请参阅MySQL手册中的DATE_FORMAT条目。
如果更愿意在PHP中完成,则需要date函数,但必须首先将数据库值转换为时间戳。