我在MySQL中有一个日期时间列。

如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?


当前回答

将从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日期格式选项来调整格式。

其他回答

使用date函数:

<?php
    echo date("m/d/y g:i (A)", $DB_Date_Field);
?>

取决于你的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));
}

您还可以让您的查询以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中的外观,这很烦人。

使用PHP版本4.4.9和MySQL 5.0,这对我来说是有效的:

$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate

PubDate是MySQL中的列。

将从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日期格式选项来调整格式。