如何使用 PHP 将日期显示为 iso 8601 格式

2022-08-30 08:44:14

我试图用PHP将MySQL数据库中的日期时间显示为iso 8601格式的字符串,但它是错误的。

17 Oct 2008 是出来的: 1969-12-31T18:33:28-06:00 这显然是不正确的 (年份应该是 2008 年而不是 1969)

这是我使用的代码:

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

$post[3] is the datetime (CURRENT_TIMESTAMP)从我的MySQL数据库。

任何想法出了什么问题?


答案 1

date 的第二个参数是 UNIX 时间戳,而不是数据库时间戳字符串。

您需要使用 strtotime 转换数据库时间戳。

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

答案 2

使用 PHP 版本 5.2 中提供的 DateTime 类,可以按如下方式完成:

$datetime = new DateTime('17 Oct 2008');
echo $datetime->format('c');

从 PHP 5.4 开始,您可以将其作为单行代码完成:

echo (new DateTime('17 Oct 2008'))->format('c');

推荐