2013-10-07 106 views
0

我想在屏幕上显示日期格式,例如2013年10月4日星期一使用MySQL表中的数据。日期以DATE格式存储。我正在使用以下内容并发生错误:需要格式化日期

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

请告诉我我做错了什么。

回答

0

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

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

应该

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

如果'$ row ['draw_date']'不是Unix时间戳,会这样吗? –

+0

其实没有。看到你的评论让我重新阅读他们的问题,我现在看到他们没有将数据存储为时间戳,这意味着它必须如此转换。我会相应地更新我的答案。 –

1

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

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

您需要使用strtotime()您的日期字符串转换到一个Unix时间戳,你可以用它在date()来获得需要的日期格式:

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

参考文档的详细信息:date()

0

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

0

我使用了以下从不同的建议,它似乎工作。谢谢你的帮助。

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