簡體   English   中英

使用PHP DateTime獲取某個日期的“正確”年份

[英]Get the “Right” Year of a Certain Date with PHP DateTime

我試圖將日期“YYYY / MM / DD”轉換為“YYYY / WW”格式,因此我可以存儲每周聚合數據,其結構如下

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

有沒有辦法改善我的每周聚合數據設計或獲得“正確”的一年?

您需要使用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

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM