2009-10-24 80 views
1
未来

简单的问题,但我需要它:)如何格式化日期从MySQL

$query = "SELECT * 
FROM `set` 
WHERE ID = '$id'"; 

$result = mysql_query($query); 
$info = mysql_fetch_assoc($result); 

$frmdate = $info['date']; 

到目前为止,我试图

$timestamp = strtotime($info['date']); 
$joined_date = date("j M. Y", $timestamp); 

,但没有运气!

在MySQL

“日期” 字段是DATE数据类型

我想让它像 “2009年10月23日”

我该怎么办呢?

感谢

回答

2

您可以使用strtotime的日期到时间戳的字符串表示形式转换,那么你可以使用date的时间戳到你喜欢的任何格式转换:

$timestamp = strtotime($frmdate); 
$formatted_date = date("j M. Y", $timestamp); 

您还可以移动从yyyy-mm-dd格式转换为查询本身的时间戳,使用:

select unix_timestamp(field_name) as field_name_timestamp 
+0

thx,$ frmdate是“2009-10-01”,但它导致“1969年12月31日”与您的代码 – 2009-10-24 22:49:04

+0

这意味着,根据'strtotime'的文档,'$ frmdate'未成功解析。 – 2009-10-24 22:58:11

+0

我只是不能这样做,$ info ['date']是DATE字段,我试过这个 $ timestamp = strtotime($ info ['date']); $ joined_date = date(“j M. Y”,$ timestamp); 但又错了 – 2009-10-24 23:05:03

1

您可以forma在MySQL数据库服务器中输入日期。

SELECT *, DATE_FORMAT(date, '%e %b. %Y') AS formatted_date 
FROM `set` 
WHERE ID = '$id' 

然后你只需要修改客户端的PHP代码,只需使用在$info['formatted_date']数据库调用返回的字符串。如果您不想在月份的某天前导零,请在格式字符串中使用'd'来代替'e'。