2011-12-24 50 views
0

代碼:更改日期格式 - 不正確的年份

$expiration_date = "24th Dec, 2012"; 
var_dump(date('Y-m-d', strtotime($expiration_date)));; 

輸出:

string(10) "2011-12-24" 

爲什麼PHP不能正確解析年份(2011顯示,而不是2012)?

PHP版本:5.2.17在CentOS 5.7

+1

strtotime很方便,但它不是無所不知的。它甚至不是人爲智能的。充其量是人爲愚蠢的。 –

回答

4

strtotime()不支持您的日期排序(請參閱2 ndtable)。改爲使用DateTime類:

$date = DateTime::createFromFormat("jS M, Y", "24th Dec, 2012"); 
var_dump($date->format('Y-m-d')); // string(10) "2012-12-24" 
1

也許有事情做與$到期日期的格式。 試着把日期的月份擺在面前。它對我來說工作得很好。

$expiration_date = "Dec 24th, 2012";