我试图从循环中搜索带有学生ID和日期的学生出勤数据,该日期是从用户输入获得的间隔。但这不能正常工作。
$newarray=array();
while(date('Y-m-d',strtotime($start_date1))<=date('Y-m-d',strtotime($end_date1))){
$attendancedate = new \MongoDate(strtotime(date($start_date1)));
$date_exists = $dm->createQueryBuilder('App\Document\studentattendancelog')
->field('pgmbatchid')->equals($programbatchid)
->field('collegeid')->equals($collegeid)
->field('termid')->equals($termid)
->field('studentid')->equals($studentid)
->field('attendenceday')->equals($attendancedate)
->field('delstatus')->equals(1)
->eagerCursor(true)
->getQuery()->toArray();
$hours = array();
$harray=array();
$arr1 = array();
if($date_exists){
$hours = $date_exists[0]->getHourlylog();
foreach($hours as $hour){
array_push($harray,$hour['hourlystatus']);
$arr1=array('day' => date('Y-m-d',strtotime($start_date1)),'value'=> $harray);
}array_push($newarray,$arr1);
}
else{
for($i=1;$i<=5;$i++){
$stat = '--';
array_push($harray, $stat);
$arr1=array('day' => date('Y-m-d',strtotime($start_date1)),'value'=> $harray);
}array_push($newarray,$arr1);
}
$start_date1 = date("Y-m-d", strtotime($start_date1. "+1 day"));
}
由于我们在此处传递了日期间隔,因此它必须显示所有日期,其中数据库中不存在的日期应在五个小时内用“-”显示结果,并且应将出勤日期作为已有日期显示存在或不存在的小时数的状态。