我有一個日期存儲在MySQL中作爲2012-11-00,我想轉換它,所以我可以在PHP頁面上正確格式化它。當我使用以下時,我總是最終落後一個月。因此,如果在MySQL的日期是2012-11-00然後從PHP的結果是2012年十月PHP strtotime函數回滾一個月的問題
date("M Y", strtotime($resVal['dateField']))
任何想法,爲什麼它這樣做?
我有一個日期存儲在MySQL中作爲2012-11-00,我想轉換它,所以我可以在PHP頁面上正確格式化它。當我使用以下時,我總是最終落後一個月。因此,如果在MySQL的日期是2012-11-00然後從PHP的結果是2012年十月PHP strtotime函數回滾一個月的問題
date("M Y", strtotime($resVal['dateField']))
任何想法,爲什麼它這樣做?
將日期保存爲「2012-11-01」,因爲2012-11-00是無效的。
爲什麼不把日期保存爲2012-11-01
?
因爲2012-11-00
是「無效」,所以對於PHP來說,該日期等於2012-10-31
。
使用DateTime::createFromFormat
可以輕鬆處理你的(奇怪)格式:
echo DateTime::createFromFormat('Y-m-|??', '2012-11-00')->format('M Y');
將返回Nov 2012
格式日期DATE_FORMAT功能:
SELECT DATE_FORMAT(date_field, '%b %Y')
FROM table
2012-11-00不是一個有效的日期 2012-11-01是一個日期... 所以可能是四捨五入到2012- 10-31
對於DateTime :: createFromFormat()來說+1:-1因爲做錯了。 – salathe
@salathe:修復的tnx。 –