Я использую symfony3, у меня есть объект с именем Presence для регистрации времени входа и выхода каждого сотрудника.Регистрация работает хорошо, но я хотел бы рассчитать общее количество рабочих часов конкретного месяца.
Фактически, я использую этот метод для расчета общего количества рабочих часов в день:
public function hoursByDay()
{
$interval1 = $this->entryTimeFirstHalf->diff($this->entryTimeFirstHalfr);
$interval2 = $this->entryTimeSecondHalf->diff($this->outTimeSecondHalf);
$e = new \DateTime('00:00');
$f = clone $e;
$e->add($interval1);
$e->add($interval2);
return $f->diff($e)->format("%H:%I");
}
Но я не смог подсчитать общее количество рабочих часов по месяцам.
/**
* Presence
*
* @ORM\Table(name="presence")
* @ORM\Entity(repositoryClass="AppBundle\Repository\PresenceRepository")
*/
class Presence
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var \DateTime
*
* @ORM\Column(name="date_presence", type="date")
*/
private $date;
/**
* @var \DateTime
*
* @ORM\Column(name="entry_time_first_half", type="time")
*/
private $entryTimeFirstHalf;
/**
* @var \DateTime
*
* @ORM\Column(name="out_time_first_half", type="time")
*/
private $outTimeFirstHalf;
/**
* @var \DateTime
*
* @ORM\Column(name="entry_time_second_half", type="time")
*/
private $entryTimeSecondHalf;
/**
* @var \DateTime
*
* @ORM\Column(name="out_time_second_half", type="time")
*/
private $outTimeSecondHalf;
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Employee")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
private $employee;