2013-01-08 28 views
0

我有一個日期存儲在MySQL中作爲2012-11-00,我想轉換它,所以我可以在PHP頁面上正確格式化它。當我使用以下時,我總是最終落後一個月。因此,如果在MySQL的日期是2012-11-00然後從PHP的結果是2012年十月PHP strtotime函數回滾一個月的問題

date("M Y", strtotime($resVal['dateField'])) 

任何想法,爲什麼它這樣做?

回答

0

將日期保存爲「2012-11-01」,因爲2012-11-00是無效的。

2

#1。

爲什麼不把日期保存爲2012-11-01

因爲2012-11-00是「無效」,所以對於PHP來說,該日期等於2012-10-31

#2。

使用DateTime::createFromFormat可以輕鬆處理你的(奇怪)格式:

echo DateTime::createFromFormat('Y-m-|??', '2012-11-00')->format('M Y'); 

將返回Nov 2012

#3。在MySQL

格式日期DATE_FORMAT功能:

SELECT DATE_FORMAT(date_field, '%b %Y') 
FROM table 
+0

對於DateTime :: createFromFormat()來說+1:-1因爲做錯了。 – salathe

+0

@salathe:修復的tnx。 –

0

2012-11-00不是一個有效的日期 2012-11-01是一個日期... 所以可能是四捨五入到2012- 10-31