date_format()期望参数1为DateTime,给定字符串

时间:2014-08-11 07:11:16

标签: php date datetime date-formatting

我试图将我的查询替换为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

2 个答案:

答案 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>";
  ...

  }