Здесь не виден простой модуль ...
$number = 1.25;
$wholeAsFloat = floor($number); // 1.00
$wholeAsInt = intval($number); // 1
$decimal = $number % 1; // 0.25
В этом случае получение как $wholeAs?
, так и $decimal
не зависит от другого.(Вы можете просто взять 1 из 3 выходов независимо.) Я показал $wholeAsFloat
и $wholeAsInt
, потому что floor()
возвращает число типа с плавающей запятой, даже если возвращаемое число всегда будет целым.(Это важно, если вы передаете результат в параметр функции с подсказкой типа.)
Я хотел, чтобы это разделило число часов / минут с плавающей запятой, например 96,25, на часы и минуты отдельно для DateInterval экземпляр как 96 часов 15 минут.Я сделал это следующим образом:
$interval = new \DateInterval(sprintf("PT%dH%dM", intval($hours), (($hours % 1) * 60)));
Меня не волновали секунды в моем случае.