2015-04-28 18 views
1

我試圖將日期「YYYY/MM/DD」轉換爲「YYYY/WW」格式,因此我可以存儲每週聚合數據,下面使用PHP獲取某個日期的「正確」年份DateTime

aggre_date(YYYY/WW) value id 

但結構我發現了一個討厭的問題

$dateTime = new DateTime("2014-12-30"); 
echo $dateTime->format("Y-W")."\n"; 
$dateTime = new DateTime("2014-01-01"); 
echo $dateTime->format("Y-W")."\n"; 

結果是完全一樣的2014-01,但前者應該是2015-01

有什麼方法可以改進我的每週聚合數據設計或獲得「正確的」一年嗎?

回答

4

您需要使用o爲ISO年份:

ISO 8601年的數字。這與Y的值相同,只是如果ISO週數(W)屬於上一年或下一年,則使用該年。 (在PHP 5.1.0添加)

$dateTime = new DateTime("2014-12-30"); 
echo $dateTime->format("o-W")."\n"; 
$dateTime = new DateTime("2014-01-01"); 
echo $dateTime->format("o-W")."\n"; 

2015-01 
2014-01 

Demo

+1

尼斯趕上'O'。 –

相關問題