2009-12-04 51 views
3

我正在以yyyy/mm/dd 00:00:00格式從MySQL中檢索日期。我想在PHP中將此日期轉換爲格式dd/MMM/yyyy。轉換爲dd/mmm/yyyy

+3

三位數月份?你住在木星上嗎? –

+3

我想他的意思是JAN,FEB,DEC等 –

+2

我假設MMM = 1月,2月......等 – kevchadders

回答

11

使用PHP的datestrtotime

$formatted = date('d/M/Y', strtotime($date_from_mysql));

或者使用MySQL的內置DATE_FORMAT功能:

SELECT DATE_FORMAT(datetime, '%d/%b/%Y') datetime FROM table

或者,您也可以混合兩者兼而有之口味:

SELECT UNIX_TIMESTAMP(datetime) timestamp FROM table; 

$formatted = date('d/M/Y', $timestamp); 

如果您需要在同一頁面上獲得多種不同格式,最後一種方法非常方便;比如說,你想單獨打印日期和時間,那麼你可以使用日期('d/M/Y',$ timestamp)和日期('H:i',$ timestamp),而不需要進一步的轉換。

+0

它幫助我。 thx –

5

儘管您特別要求提供php解決方案,但您可能也對MySQL的date_format()函數感興趣。

SELECT date_format(dt, '%d/%m/%Y') ... 
+1

+1在查詢中可以做些什麼。 – jensgram

+0

+1 MySQL在內部將日期存儲爲一個數字;這樣,您只能解析和格式化日期一次。 – Piskvor

+0

但我使用Select *

。 – RKh

0

你應該看看在PHP中date()功能(docs)。

print date('d/M/Y', $row['tstamp']); 

這適用,如果你的日期字段是DATETIMETIMESTAMP。請記住在UNIX_TIMESTAMP()docs)中包裝該字段,例如, SELECT ..., UNIX_TIMESTAMP(dateField) AS tstamp FROM ...

+1

date()的seconds參數必須是unix時間戳,而不是MySQL DATETIME或TIMESTAMP的文本表示。因此,您必須在查詢中使用UNIX_TIMESTAMP(日期)功能,http://dev.mysql.com/doc/refman/5.0/zh-CN/date-and-time-functions.html#function_unix-timestamp – VolkerK

+0

您對了。上面編輯。謝謝。 – jensgram

0

實際上,你可以讓MySQL的日期轉換爲unix時間戳

SELECT UNIX_TIMESTAMP(field) as date_field 
FROM table 

然後你就可以傳遞直入PHP的日期()函數來得到你想要的

date('d/M/Y', $row['date_field']) 
0
$d=date_create('2009-12-04 09:15:00'); 
echo $d->format('dd/M/yyyy'); 
格式