Вариант 1:
function diff(string $from, string $to): string
{
return date_diff(new \DateTime($from), new \DateTime($to))->format('%h:%i');
}
$arHistory['DATE_FROM'] = '2018-05-03 00:00:00';
$arHistory['DATE_TO'] = '2018-05-03 23:59:59';
echo diff($arHistory['DATE_FROM'], $arHistory['DATE_TO']);
Вариант 2:
function diff(string $from, string $to): string
{
$start = (new \DateTime($from))->getTimestamp();
$end = (new \DateTime($to))->getTimestamp();
$result = round(abs($start - $end) / 60 / 60, 4);
$hours = (int)$result;
$minutes = (int)(($result - $hours) * 60);
return $hours . ':' . $minutes;
}
$arHistory['DATE_FROM'] = '2018-05-03 00:00:00';
$arHistory['DATE_TO'] = '2018-05-03 23:59:59';
echo diff($arHistory['DATE_FROM'], $arHistory['DATE_TO']);
code in sandbox
Варинат 3:
function diff(string $from, string $to): string
{
return (new \DateTime($from))->diff(new \DateTime($to))->format('%h:%i');
}
$arHistory['DATE_FROM'] = '2018-05-03 00:00:00';
$arHistory['DATE_TO'] = '2018-05-03 23:59:59';
echo diff($arHistory['DATE_FROM'], $arHistory['DATE_TO']);
По разному можно. Выше лишь примеры, код ни на что не претендует. По делу стоило бы обрабатывать исключения и пр.
P.SВарианты 1 и 3 только в пределах одного дня!