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

问题描述 投票:6回答:2

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

php date datetime date-formatting
2个回答
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>";

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

  }
© www.soinside.com 2019 - 2024. All rights reserved.