【发布时间】:2018-01-10 20:53:25
【问题描述】:
我有一个包含项目的数组。每个项目都有一个标题和开始日期。现在我想按周对这些项目进行分组。如果我查看文档,格式->('W') 周从星期一开始。我需要把这个改成星期六。
$items = [
[ // friday
'title' => 'test',
'startdate' => '2016-03-18', // first group
],
[ // saturday
'title' => 'test',
'startdate' => '2016-03-19', // second group
],
[ // sunday
'title' => 'test',
'startdate' => '2016-03-20', // second group
],
[ // monday
'title' => 'test',
'startdate' => '2016-03-21', // second group
],
[ // saterday
'title' => 'test',
'startdate' => '2016-03-26', // third group
],
];
我有这样的东西,但它不能正常工作
foreach($items as $item) {
// group by week
$startDate = \DateTime::createFromFormat('Y-m-d', $item['startdate']);
$currectWeek = $startDate->format('W');
$saturday = 6;
$friday = 5;
$test = clone $startDate;
if($currectWeek !== 5){
$test->modify('last friday');
}
if($currectWeek !== 6){
$test->modify('next saturday');
}
$a = $test->format('W');
if(!isset($items_by_week[$a])){
$items_by_week[$a] = [];
}
$items_by_week[$a][] = [
'title' => $item['title'],
'date' => $item['startdate'],
];
}
【问题讨论】:
-
什么不起作用?我看到您的 $items_by_week 数组按周数分组。请让我们知道您正在寻找提供的示例输入的示例输出
-
我用下面的答案解决了这个问题:stackoverflow.com/questions/13128854/…