循环查询日期不获取适当的数据

时间:2019-02-13 06:32:14

标签: mongodb symfony angular5

我试图从循环中搜索带有学生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"));
}

由于我们在此处传递了日期间隔,因此它必须显示所有日期,其中数据库中不存在的日期应在五个小时内用“-”显示结果,并且应将出勤日期作为已有日期显示存在或不存在的小时数的状态。

0 个答案:

没有答案