我目前使用以下功能将日期范围分成几周,效果很好。唯一的问题是周从星期日开始。有没有办法修改它,所以它从星期一开始?
$start = new DateTime('2014-10-01');
$end = new DateTime('2014-10-31 23:59');
$interval = new DateInterval('P1D');
$dateRange = new DatePeriod($start, $interval, $end);
$weekNumber = 1;
$weeks = array();
foreach ($dateRange as $date) {
$weeks[$weekNumber][] = $date->format('Y-m-d');
if ($date->format('w') == 6) {
$weekNumber++;
}
}
答案 0 :(得分:0)
$dow = ($date->format('w') + 6) % 7;
%
在除以7后给出余数。因此,$dow
对于星期一(不是星期日)为0,而6为星期日(不是星期六)。