您好,我已经能够使用 string_to_date
将 VARCHAR
提取到日期,但是无论我尝试什么,日期总是回显,例如2009-05-25
这是我的有效代码:
$query = "SELECT u.url_id, url, title, description, STR_TO_DATE( pub_date, '%d-%b-%Y')
AS pub_date FROM urls AS u, url_associations AS ua WHERE u.url_id = ua.url_id AND
ua.url_category_id=$type AND ua.approved = 'Y' ORDER BY pub_date DESC";
$result = mysql_query ($query);
echo " <tr>
<td align=\"left\">{$row['pub_date']}</td>
</tr>\n";
我已经尝试过 DATE_FORMAT
和类似的方法,但我收到的不是 2009-05-25
就是空白。
谁能帮我解决这个问题。我正在寻找和测试,但我决定在这里寻求帮助,因为欢迎提供帮助,之前提供帮助的人也非常友善。
谢谢
肖恩
最佳答案
STR_TO_DATE
的返回类型是 DATE
返回给 PHP
。
PHP
在您的 echo
中格式化日期,而不是 MySQL
。
要在 MySQL
端进行格式化,请使用:
DATE_FORMAT(STR_TO_DATE( pub_date, '%d-%b-%Y'), '%Y.%m.%d')
或其他格式。
内部格式控制字符串在数据库中的存储方式,外部格式控制字符串的输出方式。
要在 PHP
端进行格式化(这样更好,因为您可以为不同的用户提供特定于文化的格式),请使用:
echo date('Y m d', strtotime($row['pub_date']))
关于php - 将 STR_TO_DATE 格式化为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/889381/