Search code examples
phpmysqldatedate-formattime-format

How to display a date as iso 8601 format with PHP


I'm trying to display a datetime from my MySQL database as an iso 8601 formated string with PHP but it's coming out wrong.

17 Oct 2008 is coming out as: 1969-12-31T18:33:28-06:00 which is clearly not correct (the year should be 2008 not 1969)

This is the code I'm using:

<?= date("c", $post[3]) ?>

$post[3] is the datetime (CURRENT_TIMESTAMP) from my MySQL database.

Any ideas what's going wrong?


Solution

  • The second argument of date is a UNIX timestamp, not a database timestamp string.

    You need to convert your database timestamp with strtotime.

    <?= date("c", strtotime($post[3])) ?>