2012-01-12 14 views
2

私の人生のためにこれを理解することはできません。私はフォーマットする必要がある日付があります。ページ上に複数の日付があり、フォーマットはうまくいきます。php date関数が間違った年を返しています

echo date('M jS o',strtotime('2012-12-31')) //is returning "Dec 31st 2013". 
echo date('M jS o',strtotime('2013-12-31')) //is returning "Dec 31st 2014". 

など、今後1年はいつもオフです。

しかし

date('M jS o',strtotime('2011-12-31')) //returns correctly "Dec 31st 2011". 
date('M jS o',strtotime('2010-12-31')) //returns correctly "Dec 31st 2010". 

など、彼らは罰金です後方に行きます。マヤ人が私たちに何かを投げかけたいくつかの黙示的な計画ですか? :)

アイデア?私は単純な答えがあると仮定します。

ありがとうございます!

答えて

8

oではなく年として使用してください。 dateあたり:

o:ISO-8601年番号。これは、ISO週番号(W)が前または次の年に属している場合を除いて、Yと同じ値を持ちます。その代わりにが使用されます。 (PHP 5.1.0で追加)

+0

私はそれを見ました。私はISO-8601のルールに従おうとしていました。それが逆火だと思います。私はこれを変更します、ありがとう!前年度から2012年にかけて31日目を登録していない理由はありますか? – leviathenator

+0

31日に該当する曜日によって異なります。 – ceejayoz

関連する問題