2010-08-17 70 views
3

我認爲這是一個簡單的問題。我們有一個帶有DATE字段的MySQL數據庫,日期以美國格式(2010-06-01)存儲。PHP從MySQL查詢轉換日期

在我將顯示日期的PHP頁面中,我只是想將此日期轉換爲英國格式(01-06-2010)。

任何幫助和建議表示讚賞!

謝謝,

荷馬。

回答

13

您沒有指定,您的示例不明確,但我假設您正在討論以日 - 月 - 年的格式輸出。您可以使用strtotime解析字符串日期爲Unix時間戳,然後給該時間戳date與你想輸出在你的日期格式一起:

date("d-m-Y", strtotime($date_from_mysql)); 

date列出了所有的手冊頁您可以提供的格式選項。在這種情況下,d表示當天爲零填充數字,m表示該月份爲零填充數字,而Y表示該年份爲四位數字。任何對date沒有特定含義的字符都會按原樣顯示。

+1

+1。這可能是m-d-Y,從OP的示例MySQL日期來判斷。 – 2010-08-17 21:09:49

+1

@gclaghorn MySQL'DATE'格式爲'YYYY-MM-DD'(http://dev.mysql.com/doc/refman/5.6/en/datetime.html)。因此,如果2010-06-01是MySQL'DATE',則意味着2010年6月1日(因此01-06-2010是DD-MM-YYYY)。 – 2010-08-17 21:13:06

+0

完美 - 謝謝丹尼爾 - 道歉,如果這個問題有點模糊。 – 2010-08-19 11:50:41

3

您可以從MySQL使用DATE_FORMAT()功能做是正確的。 示例:「SELECT DATE_FORMAT(date_column,'%d-%m-%Y') as my_formated_date;」將執行您所需的操作,只需確保在提取方法中使用my_formated_date列

1

您還可以使用DateTime :: createFromFormat功能在PHP中創建Date對象。

<?php 
    $date = DateTime::createFromFormat('Y-m-d', $sql_date); 
    echo $date->format('d-m-Y'); 
?> 
+0

快速編輯。以爲我有一個流浪的撇號,原來我錯過了另一個。 – Codeacula 2010-08-17 21:21:05

+0

不是我一直在尋找,但有幫助 - 謝謝! – 2010-08-19 14:09:48