[英]Last day of the leap year, week 53 or 1?
I have a script that process raw CSV data and generate report grouped by week of the year. 我有一个脚本来处理原始CSV数据并生成按年度分组的报告。
Which looks something like this: 看起来像这样:
//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'];
Everything was working fine until I tried to parse data generated over new year eve, for some reason system believes that 31 December 2012 is week number 1 of year 2012. I'm not sure is it bug or a feature, but produced reports are definitely wrong. 一切正常,直到我试图解析在新年前夕产生的数据,由于某种原因,系统认为2012年12月31日是2012年的第1周。我不确定它是错误还是功能,但产生的报告肯定是错误。
What is a correct way of passing this issue and keeping data grouped by weeks? 传递此问题并将数据按周分组的正确方法是什么?
试试这个:
$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;
}
past year i am getting all d records properly but in 2016 april first select than I got april 2015 report show any thing missing or its leap year problem 过去的一年我得到了所有的d记录,但在2016年4月首次选择比我2015年4月的报告显示任何遗漏或闰年问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.