使用PHP将MySQL日期时间转换为另一种格式


Answers

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

Question

我在MySQL中有一个datetime列。

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




更简单的方法是直接在MySQL查询中格式化日期,而不是PHP。 请参阅DATE_FORMATMySQL手册条目

如果你想用PHP来做,那么你需要date函数,但是你必须首先将数据库值转换为时间戳。




使用date功能:

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



SELECT 
 DATE_FORMAT(demo.dateFrom, '%e.%M.%Y') as dateFrom,
 DATE_FORMAT(demo.dateUntil, '%e.%M.%Y') as dateUntil
FROM demo

如果您不想更改PHP代码中的每个函数,为了显示预期的日期格式,请在源代码中更改它 - 数据库。

像上面的例子那样用as运算符命名行是很重要的(如dateFrom,如dateUntil)。 你在那里写的名字是名字,这些行将在你的结果中被调用。

这个例子的输出是

[月份的日期,数字(0..31)]。[月份名称(1月... 12月)]。[年份,数字,4位数字]

例如:2015年8月5日

用选定的分隔符更改点并检查DATE_FORMAT(日期,格式)函数以获取更多日期格式。




使用PHP版本4.4.9和MySQL 5.0,这为我工作:

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

PubDateMySQL的列。







为了在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




你可以在Unix Timestamp中没有返回日期时遇到麻烦,所以这适用于我...

return date("F j, Y g:i a", strtotime(substr($datestring, 0, 15)))





Related