我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
当前回答
更简单的方法是直接在MySQL查询中格式化日期,而不是PHP。请参阅MySQL手册中的DATE_FORMAT条目。
如果更愿意在PHP中完成,则需要date函数,但必须首先将数据库值转换为时间戳。
其他回答
使用PHP版本4.4.9和MySQL 5.0,这对我来说是有效的:
$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate
PubDate是MySQL中的列。
你可能会遇到Unix时间戳中没有返回的日期的问题,所以这对我来说是可行的…
return date("F j, Y g:i a", strtotime(substr($datestring, 0, 15)))
忘记所有。只使用:
$date = date("Y-m-d H:i:s",strtotime(str_replace('/','-',$date)))
这会有用的……
echo date('m/d/y H:i (A)',strtotime($data_from_mysql));
最后是PHP 5.3及以上版本的正确解决方案: (像评论中提到的那样,在示例中添加了可选的时区)
无时区:
$date = \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date);
echo $date->format('m/d/y h:i a');
时区:
$date = \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date, new \DateTimeZone('UTC'));
$date->setTimezone(new \DateTimeZone('Europe/Berlin'));
echo $date->format('m/d/y h:i a');