2012-08-06 130 views
1

我在MySQL表中的下列兩個名稱:日期格式

message是鍵入text

date是鍵入datetime

<?php 
while($row=mysql_fetch_array($result)){ 
?> 
<tr> 
    <td><div><a><? echo $row['message'] ?></a></div></td> 
    <td><div><a><? echo $row['date']; ?></a></div></td> 
</tr> 
<?php 
} 
?> 

上表的輸出顯示日期這種格式2012-08-05 17:43:57

如何以這種格式打印日期2012-08-05(沒有時間)?

我不能在MySQl中更改類型的日期時間(在不同格式的不同頁面中需要它)。

我試過以下,但它並不能幫助(沒有印刷在所有)

<td><div><a><? echo $rows['date'](「Y-m-d」); ?></a></div></td> 

附:日期格式的其他組合給我語法錯誤。

任何建議將不勝感激,

回答

3

你想

<?php echo date('Y-m-d', strtotime($row['date'])); ?> 

strtotime您datestring轉換成UNIX時間戳

屆時,date函數格式得當根據字符串。

+0

感謝Erty,這是一個非常好的解決方案。 – blsn 2012-08-06 20:03:54

0

您想要date()更改格式。

+0

我不希望日期更改時間格式,我只需要日期(Y-m-d)的回顯,而無需時間。 – blsn 2012-08-06 19:38:33

+0

這是相同的功能。閱讀@Erty的答案。它有一個更好的解釋。 – Biotox 2012-08-06 19:40:15

0

您應該使用format function

echo new DateTime($row['date'])->format('Y-m-d'); 

修訂感謝@Erty

+0

您是否需要首先實例化DateTime對象,或者是自動完成的? – 2012-08-06 19:39:03

+0

你說得對@Erty。它已經很長一段時間沒有PHP對我:( – Diego 2012-08-06 19:39:54

+0

哈哈沒問題,只是幫助。不知道如果你編輯的代碼作品要麼...... – 2012-08-06 19:40:22

0

有一種叫做TO_CHAR方法,MS-SQL和Oracle中,你可以通過你希望你的日期格式,所以同時獲取數據,你可以改變它

0

您首先需要將其轉換爲日期:

$tmpdate = strtotime($row['date']); 
$date = date('Y-M-d', $tmpdate); 
echo $date; 

當然你可能短下來,正如其他人的建議,但我更喜歡「在很長的路要走」,以提高可讀性,並幫助你加快速度更快當您回顧並在將來查看舊代碼時。 :-)

+0

謝謝,但我收到語法錯誤 注意:使用未定義的常量日期 - 在128行C:\ xampp \ htdocs \ MySQLprtnr \ getlisting.php中假定'date' – blsn 2012-08-06 19:51:26

0

每一個其他人的建議你用PHP做,我總是這樣做MySQL自己的最新功能:

SELECT ... DATE_FORMAT(Date_Field ,'%Y-%e-%c') ... 

DATE_FORMAT