/** * @test */ public function checkTransformerDateInterval() { $transformer = new DateDiffToDecimalTime(); $dateInterval = (new \DateTime('now'))->diff(new \DateTime('-1 day')); $string = $transformer->transform($dateInterval); self::assertEquals(1440, $string); }
public function endAction() { if (!$this->loadUserFromSession()) { $this->errorMessage('login-needed', _('please login!'), null, ['logout' => true]); return; } $request = ClosureFactory::getInstance()->get('request-handler', []); if (!$request->getRaw()) { $this->errorMessage('error', _('no request data')); return; } /** * @var EntityManager $em */ $em = ClosureFactory::getInstance()->get('entity-manager'); /** * @var Session $session */ $session = $em->findOneBy(new Session(), ['id' => (int) $request->getRaw()->get('sessionId')]); if (!$session->getId()) { $this->errorMessage('error', _('no session found')); return; } $endTime = new \DateTime('now'); $startTime = new \DateTime($session->getStartTime()); $diff = $startTime->diff($endTime); $session->setEndTime($endTime->format('Y-m-d H:i:s')); $transformer = new DateDiffToDecimalTime(); $session->setTimeDiff($transformer->transform($diff)); if ($em->persist($session)) { $this->successMessage('session-ended', _('Session successfully ended!'), null, $session); } else { $this->errorMessage('session-end-failed', _('Session could not be ended!')); } }