![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CoreBundle/Helper/Chart/ |
<?php namespace Mautic\CoreBundle\Helper\Chart; trait DateRangeUnitTrait { /** * Returns appropriate time unit from a date range so the line/bar charts won't be too full/empty. */ public function getTimeUnitFromDateRange(\DateTimeInterface $dateFrom, \DateTimeInterface $dateTo): string { $dayDiff = $dateTo->diff($dateFrom)->format('%a'); $unit = 'd'; if ($dayDiff <= 1) { $unit = 'H'; $sameDay = $dateTo->format('d') === $dateFrom->format('d'); $hourDiff = $dateTo->diff($dateFrom)->format('%h'); $minuteDiff = $dateTo->diff($dateFrom)->format('%i'); if ($sameDay && !intval($hourDiff) && intval($minuteDiff)) { $unit = 'i'; } $secondDiff = $dateTo->diff($dateFrom)->format('%s'); if (!intval($minuteDiff) && intval($secondDiff)) { $unit = 'i'; } } if ($dayDiff > 31) { $unit = 'W'; } if ($dayDiff > 100) { $unit = 'm'; } if ($dayDiff > 1000) { $unit = 'Y'; } return $unit; } }