3

我有一个脚本可以处理原始 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 周。我不确定它是错误还是功能,但生成的报告肯定是错误的。

传递此问题并将数据按周分组的正确方法是什么?

4

3 回答 3

7

试试这个:

$key = $date->format('o W');
于 2013-02-19T20:29:00.413 回答
0

我认为星期是在星期四定义的,这意味着如果星期四在 2013 年,那么它被算作当年的一周。

于 2013-02-19T20:27:19.260 回答
0
$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 月得到的报告显示任何遗漏或其闰年问题

于 2016-04-16T06:18:14.053 回答