20,398
社区成员




function getWeekFromRange($start, $end){
//TODO : 获取开始日期与结束日期之间所有周
}
$start = "2018-11-15";
$end = "2018-12-17";
print_r(getWeekFromRange($start, $end));
function getWeekFromRange($start, $end){
$t = strtotime($start);
$w = date('w',$t);
$t = strtotime("-$w day", $t);
while($t<strtotime($end)) {
$res[] = array( 'value' =>
array(
'time' => date('m月d日', $t) . date('-m月d日', strtotime('6day',$t)),
'week' => date('W', $t),
)
);
$t = strtotime('1week',$t);
}
return $res;
}
Array
(
[0] => Array
(
[value] => Array
(
[time] => 11月11日-11月17日
[week] => 45
)
)
[1] => Array
(
[value] => Array
(
[time] => 11月18日-11月24日
[week] => 46
)
)
[2] => Array
(
[value] => Array
(
[time] => 11月25日-12月01日
[week] => 47
)
)
[3] => Array
(
[value] => Array
(
[time] => 12月02日-12月08日
[week] => 48
)
)
[4] => Array
(
[value] => Array
(
[time] => 12月09日-12月15日
[week] => 49
)
)
[5] => Array
(
[value] => Array
(
[time] => 12月16日-12月22日
[week] => 50
)
)
)
function getWeekFromRange($start, $end){
//TODO : 获取开始日期与结束日期之间所有周
$date = [];
$startTime = strtotime($start);
$startDate = date('Y-m-d', strtotime('-'.(date('w', $startTime)).' day',$startTime));
$endDate = date('Y-m-d', strtotime('+'.(6-date('w', $startTime)).' day',$startTime));
while ($startDate < $end) {
$date[] = date('Y年m月d日', strtotime($startDate)) . '-' . date('Y年m月d日', strtotime($endDate));
$startDate = date('Y-m-d', strtotime('+1 week',strtotime($startDate)));
$endDate = date('Y-m-d', strtotime('+1 week',strtotime($endDate)));
}
return $date;
}
你可以优化一下