我目前使用以下函数将日期范围划分为周,效果很好。唯一的问题是这个星期从星期天开始。有没有办法修改它,让它从周一开始?
$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++;
}
}
$dow = ($date->format('w') + 6) % 7;
%
给出除以7后的余数。因此,$dow
将在周一(而不是周日)为0,6将在周日(而不是周六)为0。