2011-12-24 36 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";