我试图将我的查询替换为PDO查询,但我遇到日期格式问题。我需要以d / m / Y H:i:s的格式打印日期,但是在PDO脚本运行后,它会以这种格式打印日期Y-m-d H:i:s
while($row = $sql -> fetch(PDO::FETCH_ASSOC))
{
...
echo "<td>" . date_format( $row['date'], 'd/m/Y H:i:s'). "";"</td>";
...
}
Warning: date_format() expects parameter 1 to be DateTime, string given in
但如果我将代码更改为echo "<td>" . $row['date']. "";"</td>";
,则会返回Y-m-d H:i:s
如何获取以前的格式d/m/Y H:i:s
?
答案 0 :(得分:9)
date_format
的第一个参数需要是DateTime
类的对象。
echo "<td>" . date_format( new DateTime($row['date']), 'd/m/Y H:i:s' ). "</td>";
或者
echo "<td>" . date_format( date_create($row['date']), 'd/m/Y H:i:s' ). "</td>";
答案 1 :(得分:2)
将代码更改为PHP手册中提供的以下内容。如错误中所述,您需要在输出之前将值转换为DateTime对象。
while($row = $sql -> fetch(PDO::FETCH_ASSOC))
{
$date = new DateTime($row['date']);
...
echo "<td>" . $date->format( $row['date'], 'd/m/Y H:i:s'). "";"</td>";
...
}