[英]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.