2011-12-24 17 views
0

コード:日付形式を変更する - 間違った年

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

出力:

string(10) "2011-12-24" 

はなぜPHPが正しく年間の構文解析されていませんが(代わりに、2012年の2011年を示す)を?

PHPバージョン:5.2.17

+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

CentOSに5.7には、おそらくそれは、$ EXPIRATION_DATEのフォーマットとは何かを持っています。 日付のinfront月を入れてみてください。それは私にとってうまくいった。

$expiration_date = "Dec 24th, 2012"; 
関連する問題