我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
当前回答
取决于你的MySQL datetime配置。典型格式:2011-12-31 07:55:13。这个非常简单的函数应该有魔力:
function datetime()
{
return date( 'Y-m-d H:i:s', time());
}
echo datetime(); // display example: 2011-12-31 07:55:13
或者更高级一点来匹配问题。
function datetime($date_string = false)
{
if (!$date_string)
{
$date_string = time();
}
return date("Y-m-d H:i:s", strtotime($date_string));
}
其他回答
这会有用的……
echo date('m/d/y H:i (A)',strtotime($data_from_mysql));
您还可以让您的查询以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)))
$valid_date = date( 'm/d/y g:i A', strtotime($date));
参考:http://php.net/manual/en/function.date.php
如果您正在寻找一种将日期规范化为MySQL格式的方法,请使用以下方法
$phpdate = strtotime( $mysqldate );
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
$phpdate = strtotime($mysqldate)行接受一个字符串,并执行一系列启发式操作将该字符串转换为unix时间戳。
$mysqldate = date('Y-m-d H:i:s', $phpdate)使用该时间戳和PHP的日期函数将该时间戳转换回MySQL的标准日期格式。
(编者注:这个答案在这里是因为一个原始的问题,措辞令人困惑,这个答案提供了一般谷歌有用性,即使它没有直接回答现在存在的问题)