更改日期格式 - 不正确的年份

时间:2011-12-24 20:16:50

标签: php date

代码:

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

输出:

string(10) "2011-12-24"

为什么PHP没有正确解析年份(显示2011而不是2012)?

PHP版本:Centos 5.7上的5.2.17

3 个答案:

答案 0 :(得分:4)

strtotime()不支持您的约会顺序(请参阅2 nd table)。请改用DateTime类:

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

答案 1 :(得分:1)

也许它与$ expiration_date的格式有关。 尝试将月份放在前面。它对我来说很好。

$expiration_date = "Dec 24th, 2012";

答案 2 :(得分:1)

strtotime函数的输入必须位于format strtotime can understand