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

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


当前回答

$valid_date = date( 'm/d/y g:i A', strtotime($date));

参考:http://php.net/manual/en/function.date.php

其他回答

$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";

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

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

我建议的方法如下。首先,从一个mysql格式的字符串创建一个基本的datetime对象;然后按你喜欢的方式格式化。幸运的是,mysql datetime是符合iso8601标准的,所以代码本身看起来非常简单和优雅。但是请记住,datetime列没有时区信息,因此需要适当地转换它。

代码如下:

(new ISO8601Formatted(
    new FromISO8601('2038-01-19 11:14:07'),
    'm/d/Y h:iA'
))
    ->value();

它输出01/19/2038 11:14AM——希望是你所期望的。

这个例子使用了蛋白库。如果你喜欢,你可以再看一些。