使用PHP从MySQL日期时间转换为另一种格式
时间:2020-03-06 14:45:22 来源:igfitidea点击:
我在MySQL中有一个" datetime"列。
如何使用PHP将其转换为以mm / dd / yy H:M(AM / PM)的形式显示?
解决方案
一种更简单的方法是直接在MySQL查询中而不是PHP格式化日期。有关DATE_FORMAT的信息,请参见MySQL手册。
如果要使用PHP进行操作,则需要使用date函数,但是必须首先将数据库值转换为时间戳。
使用日期功能:
<?php echo date("m/d/y g:i (A)", $DB_Date_Field); ?>
要将从MySQL检索到的日期转换为请求的格式(mm / dd / yy H:M(AM / PM)
):
// $datetime is something like: 2014-01-31 13:05:59 $time = strtotime($datetimeFromMysql); $myFormatForView = date("m/d/y g:i A", $time); // $myFormatForView is something like: 01/31/14 1:05 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); ?>
或者
<?php echo date('F j, Y, g:i a', $row->unixtime); ?>
我喜欢这种方法,而不是使用MySQL的DATE_FORMAT
函数,因为它允许我们重用相同的查询来获取数据,并允许我们更改PHP的格式。
有两个不同的查询只是为了更改日期在UI中的显示方式,这很烦人。
如果我们使用的是PHP 5,也可以尝试
$oDate = new DateTime($row->createdate); $sDate = $oDate->format("Y-m-d H:i:s");
使用PHP版本4.4.9和MySQL 5.0,这对我有用:
$oDate = strtotime($row['PubDate']); $sDate = date("m/d/y",$oDate); echo $sDate
" PubDate"是MySQL中的列。
我们可能会遇到Unix Timestamp中未返回日期的问题,因此这对我有用...
return date("F j, Y g:i a", strtotime(substr($datestring, 0, 15)))