- round: documentation ( source)
<?php
/**
* Converts a 'decimal time' in the format 1.5hours to DateInterval object
*
* @param Int $decimalTime
* @return DateInterval
*/
function decTimeToInterval($decimalTime)
{
$seconds = round($decimalTime * 3600);
$interval = \DateInterval::createFromDateString("$seconds seconds");
$start = new \DateTime();
$end = clone($start);
$end->add($interval);
$interval = $start->diff($end);
return $interval;
}
echo decTimeToInterval(12.33)->format("%H:%I:%S");