date_format() expects parameter 1 to be DateTime, string given
24,872
Solution 1
The first parameter to date_format
needs to be an object of DateTime
class.
echo "<td>" . date_format( new DateTime($row['date']), 'd/m/Y H:i:s' ). "</td>";
or, alternatively
echo "<td>" . date_format( date_create($row['date']), 'd/m/Y H:i:s' ). "</td>";
Solution 2
Change your code to the following as provided in the PHP manual. As stated in the error you need to convert the value to DateTime object before outputting.
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>";
...
}
Author by
Klapsius
Updated on December 23, 2020Comments
-
Klapsius over 3 years
I'm trying to replace my queries to PDO query and I have problems with date formats. I need to print dates in format d/m/Y H:i:s but after PDO script runs it prints the date in this format 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
But if I change the code to
echo "<td>" . $row['date']. "";"</td>";
then it returns toY-m-d H:i:s
How can I get the previous formatd/m/Y H:i:s
?