生の 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 週であると認識しています。バグなのか機能なのかはわかりませんが、作成されたレポートは間違いなく違う。
この問題を解決し、データを週ごとにグループ化する正しい方法は何ですか?