2011-09-30 14 views
7

PHPのdate()関数を使用して興味深い問題にぶつかってきました。これについての議論をGoogleやGoogleを使って見つけることはできませんでしたが、他の誰かが同じ問題に遭遇した可能性はありますか?PHP年月日から週を2年にした年の年と週を取得する

私は、与えられたタイムスタンプの年と1週間を取得しようとしています。 2011-W39は:今日のように正しく出力

date("Y-\WW");

:これは私が使用していたコードです。

問題は、問題のタイムスタンプが、例えば2011年1月3日(実際には「2010年第52週」の一部であった場合)です。PHPはW52を正しく返しますが、年として2011年、代わりに2010年

​​

出力:2011-W52

この問題を解決する方法上の任意のアイデアは、私は、この場合には、それは簡単だろうが、ちょうどことを比較することに注意する必要がありますか?出力のstrtotime()が現在のより大きいと調整してください。しかし、私は以前の年にも同様に機能するソリューションが必要です(例:同じことが2010年1月3日に起こった場合)。 date()ため

ドキュメントから:

+2

私はちょうどIDEOneに[ '日付( "Y- \ WW"、1294016400)'テストされ、私は '2011-W01を取得されている必要があります'](http://ideone.com/HWyeo)。 – JRL

+0

これは、タイムゾーンまたはロケールの可能性があります。私は以下の質問に答えました。私は新しく追加された 'o'を' Y'の代わりに使用していたはずです。 –

答えて

23

密接に十分なダーン、明らかに私はしませんでした再読み込み文書、手紙oはPHP 5.1.0で追加されました

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

だから私のコードはdate("o-\WW");

+1

この問題に遭遇したとき、まったく同じ懸念とそのような簡単な答えでSOの質問を見つけることを夢見ることができませんでした。どうもありがとう ! – neemzy

関連する問題