我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
我在MySQL中有一个日期时间列。
如何将其转换为显示为mm/dd/yy H:M (AM/PM)使用PHP?
当前回答
$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";
其他回答
你可能会遇到Unix时间戳中没有返回的日期的问题,所以这对我来说是可行的…
return date("F j, Y g:i a", strtotime(substr($datestring, 0, 15)))
使用PHP版本4.4.9和MySQL 5.0,这对我来说是有效的:
$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate
PubDate是MySQL中的列。
要在PHP中正确格式化DateTime对象以存储在MySQL中,请使用MySQL使用的标准化格式,即ISO 8601。
PHP从5.1.1版本开始就将这种格式存储为常量,我强烈建议使用这种格式,而不是每次都手动输入字符串。
$dtNow = new DateTime();
$mysqlDateTime = $dtNow->format(DateTime::ISO8601);
这个和其他PHP DateTime常量的列表可以在http://php.net/manual/en/class.datetime.php#datetime.constants.types上找到
我建议的方法如下。首先,从一个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——希望是你所期望的。
这个例子使用了蛋白库。如果你喜欢,你可以再看一些。
如果您正在寻找一种将日期规范化为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的标准日期格式。
(编者注:这个答案在这里是因为一个原始的问题,措辞令人困惑,这个答案提供了一般谷歌有用性,即使它没有直接回答现在存在的问题)