可用于挂号系统显示最近7天日历数据
实现代码如下:
function display7days(){
$weekArr = [1=>'周一',2=>'周二',3=>'周三',4=>'周四',5=>'周五',6=>'周六',7=>'周日'];
$weekStat = [1=>1,2=>1,3=>1,4=>1,5=>1,6=>1,7=>0];
$currentMonth = date('Y-m');
$res['month'] = $currentMonth;
$res['days'] = [];
$monthNumber = date('m');
foreach ($weekArr as $key => $week) {
if($key>1){
$diff = $key-1;
$dayFullDate = date('Y-m-d',strtotime('+'.$diff.' day'));
} else {
$dayFullDate = date('Y-m-d');
}
$monthNum = date('m',strtotime($dayFullDate));
//是否跨月份 跨月份显示两个月份
if(intval($monthNumber)!=intval($monthNum)){
$nextMonth = '~'.date('Y-m',strtotime($dayFullDate));
} else {
$nextMonth = '';
}
$weekNum = date('w',strtotime($dayFullDate));
if($weekNum==0){
$weekNum = 7;
}
$tmpArr = [
'week'=>$weekArr[$weekNum],
'dayNum'=>date('d',strtotime($dayFullDate)),
'fullDate'=>$dayFullDate,
'ysStat'=>$weekStat[$weekNum]
];
array_push($res['days'], $tmpArr);
}
$res['month'] = $res['month'].$nextMonth;
return $res;
}
输出如下图:
以上仅供学习参考,暂未测试是否存在bug