簡體   English   中英

閏年的最后一天,53或1周?

[英]Last day of the leap year, week 53 or 1?

我有一個腳本來處理原始CSV數據並生成按年度分組的報告。
看起來像這樣:

//timezone is set to Europe/London
$date = new DateTime($raw['order_date']); // example: 12/31/2012

$key = $date->format('Y W'); // 2012 01

$array[$key][] = $raw['product_id'];

一切正常,直到我試圖解析在新年前夕產生的數據,由於某種原因,系統認為2012年12月31日是2012年的第1周。我不確定它是錯誤還是功能,但產生的報告肯定是錯誤。

傳遞此問題並將數據按周分組的正確方法是什么?

試試這個:

$key = $date->format('o W');

我認為本周定義為星期四,這意味着如果星期四在2013年下降,那么它將被計為當年的一周。

$w=(int)date('W');

$m=(int)date('n');

$w=$w==1?($m==12?53:1):($w>=51?($m==1?0:$w):$w);

$year = date('Y');

if($w==53)

{

$year=$year+1;

}

過去的一年我得到了所有的d記錄,但在2016年4月首次選擇比我2015年4月的報告顯示任何遺漏或閏年問題

暫無
暫無

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

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