/** * Get Interval for a year * * @param \DateTime $dateStart * @param \DateTime $dateEnd * @param bool $firstInterval * @return array */ protected function _getYearInterval(\DateTime $dateStart, \DateTime $dateEnd, $firstInterval) { $interval = []; $interval['period'] = $dateStart->format('Y'); $interval['start'] = $firstInterval ? $this->_localeDate->convertConfigTimeToUtc($dateStart->format('Y-m-d 00:00:00')) : $this->_localeDate->convertConfigTimeToUtc($dateStart->format('Y-01-01 00:00:00')); $interval['end'] = $dateStart->diff($dateEnd)->y == 0 ? $this->_localeDate->convertConfigTimeToUtc($dateStart->setDate($dateStart->format('Y'), $dateEnd->format('m'), $dateEnd->format('d'))->format('Y-m-d 23:59:59')) : $this->_localeDate->convertConfigTimeToUtc($dateStart->format('Y-12-31 23:59:59')); $dateStart->modify('+1 year'); if ($dateStart->diff($dateEnd)->y == 0) { $dateStart->setDate($dateStart->format('Y'), 1, 1); } return $interval; }