展示最近7天数据,当中天数没有的时候赋默认值
查询数据是这样,下图
protected $weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
$nlist = [];
// 得到最近7天年月日
for($i=0;$i<$recent_7_day;$i++){
$s_time = $startTime + (86400 * $i);
$recent_date[$i] = date("Y-m-d", $s_time);
$etime = date("Y-m-d",$s_time + $recent_7_day * 86400 );
$Stime = date("Y-m-d",$s_time);
// 医生挂号时间
$current_doc_sitschedule = XXX::where("work_time",">=",date("Y-m-d",$s_time))
->where("work_time","<=",$etime)
->where("do_id",$do_id)
->field("id,perioddata,work_time")
->find();
// 是否有排班
if ($current_doc_sitschedule) {
// 获取周几
$weekss = date('w', strtotime($current_doc_sitschedule['work_time']));
// 重新赋值
$current_doc_sitschedule['week'] = $this->weeks[$weekss];
$workTime = ['id' => $current_doc_sitschedule['id'], 'day' => $current_doc_sitschedule['work_time'], 'period' => $current_doc_sitschedule['perioddata'], 'week' => $current_doc_sitschedule['week']];
if ($current_doc_sitschedule['work_time'] >= $Stime && $current_doc_sitschedule['work_time'] <= $etime) {
if (isset($nlist[$Stime])) {
$nlist[$Stime] = $workTime;
} else {
$akl = date('w', strtotime($Stime));
// 重新赋值
$aklweek = $this->weeks[$akl];
if ($current_doc_sitschedule['work_time'] !== $Stime) {
$workTime = ['id' => 0, 'day' => $Stime, 'period' => 3, 'week' => $aklweek];
}
$nlist[$Stime] = $workTime;
}
}
}else{
$akl = date('w', strtotime($Stime));
// 重新赋值
$aklweek = $this->weeks[$akl];
$workTime = ['id' => 0, 'day' => $Stime, 'period' => 3, 'week' => $aklweek];
$nlist[$Stime] = $workTime;
}
}
// 按照 KEY 排序
ksort($nlist);
循环后