/** * Index method * * @return void */ public function indexToday($dayOffset = 0) { $dayStart = null; $dayEnd = null; $this->getDay($dayOffset, $dayStart, $dayEnd, "America/Chicago"); $query = $this->Sessions->find()->where(['Sessions.created >=' => $dayStart])->where(['Sessions.created <=' => $dayEnd])->contain(['Users', 'Projects', 'Tasks'])->order(['Sessions.created' => 'DESC']); // this is just total elapsed time for the day not a real datetime $totalTime = new Time('2000-01-01'); //debug($totalTime); $recs = $query->toArray(); //debug($recs);die; $index = 0; foreach ($recs as $session) { $start = new Time($session['created']); $stop = new Time($session['stopped']); $interval = $start->diff($stop); $totalTime->add($interval); // if elapsed time is more than 0 days, show the day part too if ($interval->days > 0) { $timeLapse = $interval->format('%D:%H:%I'); } else { $timeLapse = $interval->format('%H:%I'); } // just show MM:SS /* show state */ if ($session->state == 0) { $state = "not started"; } else { if ($session->state == 1) { $state = "<span style='font-weight: normal;'>STARTED</span>"; } else { if ($session->state == 2) { $state = "stopped"; } else { $state = "invalid"; } } } $recs[$index]['timeLapse'] = $timeLapse; $recs[$index]['totalTime'] = $totalTime->format('H:i'); $recs[$index]['stateDesc'] = $state; $index++; } $this->set('sessions', $recs); $this->set('totalTime', $totalTime); //debug($sessions);die; $this->set('_serialize', ['sessions']); }