需要格式化日期


Need to Format Date

我正在尝试使用 MySQL 表中的数据在屏幕上显示日期,例如 2013 年 10 月 4 日星期一。日期以 DATE 格式存储。我正在使用以下内容,但出现错误:

echo "<td class='date' colspan='8'>" .date($row['draw_date'],'l F j, Y'). "</td>";

请告诉我我做错了什么。

date()函数需要 Unix 时间戳作为其第二个参数,您现在提供格式作为第二个参数。

string date ( string $format [, int $timestamp = time() ] )

您需要首先使用 strtotime() 将日期字符串转换为 Unix 时间戳,并且可以在date()中使用它来获取所需格式的日期:

date('l F j, Y', strtotime($row['draw_date']))

有关详细信息,请参阅文档:date()

您有date()的参数向后,您需要先将日期转换为时间戳,然后再在date()函数中使用它。

date($row['draw_date'],'l F j, Y')

应该是

date('l F j, Y', strtotime($row['draw_date']))

MySQL将以字符串格式返回日期,例如 2013-10-07 .您不能将该字符串用作 PHP date()函数中的时间戳。该函数需要一个 UNIX 时间戳,这是一个简单的整数。要么使用 date_format() 在 MySQL 中格式化您的日期并简单地输出字符串,要么使用 MySQL 的 unix_timestamp() 将本机 DATE 转换为 unix 时间戳,您可以将该时间戳输入到 PHP 的日期系统中。

我从不同的建议中使用了以下内容,它似乎有效。感谢您的帮助。

$row['display_date'] = strtotime($row['date']);
    echo "<td class='date' colspan='8'>".date('D M d, Y', $row['display_date']). "</td>";