2011-11-10 53 views
3

我有一個日期列這樣的yyyymmdd(20111109)的sql數據庫,我通常按日期排序我的返回查詢。將整數日期轉換爲格式化文本

我想知道如何將其轉換爲(D jS M)或(11月9日星期三)。

對於月份,日期和序號後綴,im使用substr和大小寫。但它的工作日讓我感到沮喪。

有沒有更簡單的方法?

在此先感謝。

回答

2

如果你有興趣在一些更復雜:

$date = DateTime::createFromFormat('Ymd', '20111109'); 
    echo $date->format('D jS M'); 

從長遠來看,這應該更可靠。

+0

哇。這正是我所期待的。究竟! – Nerve

+0

不要忘記,這隻適用於PHP> = 5.3。嘗試使用DateTime :: createFromFormat()時,5.2.x會給你一個錯誤。解決方法是使用Zend Framework的Zend_Date。 – techouse

2

這應該工作:

date_default_timezone_set('America/Los_Angeles'); 
$date = strtotime($your_string); 
$formatted_date = date('D jS M', $date); 
echo $formatted_date; 
+0

啊。謝謝一百萬人。我不認爲strtotime會像那樣工作 – Nerve

+0

Np;)如果你還沒有設置你的默認時區,請不要忘記。 ;) – techouse

1

嘗試使用strtotimedate()功能

與組合就可以實現:

echo date("D j, M", strtotime(20111109)); 
+0

幹得好Dastca。這很簡單,並與我的代碼工作正常。 –