Php 将十进制分钟转换为HH:MM:SS

Php 将十进制分钟转换为HH:MM:SS,php,datetime,Php,Datetime,我试图在PHP中将十进制分钟(即0.8)转换为HH:MM:SS格式。我希望“0.8”的格式为“00:00:48”。下面是我的当前代码,但它当前正在生成一个错误 $decimalized_minutes = "0.8"; $duration = fmod($decimalized_minutes, 60); $sec = $duration % 60; $min = fmod(($duration - $sec) / 60, 60); $hour = ($duration - 60 * $min

我试图在PHP中将十进制分钟(即0.8)转换为HH:MM:SS格式。我希望“0.8”的格式为“00:00:48”。下面是我的当前代码,但它当前正在生成一个错误

$decimalized_minutes = "0.8";

$duration = fmod($decimalized_minutes, 60);
$sec = $duration % 60;
$min = fmod(($duration - $sec) / 60, 60);
$hour = ($duration - 60 * $min - $sec) / 3600;
$durDate = new DateInterval("PT$hour" . "H$min" . "M$sec" . 'S');
$returnString = $durDate->format('%H:%I:%S');

echo $returnString;
但是,我目前收到此错误:

DateInterval::__construct(): Unknown or bad format (PT0H0.013333333333333M0S)

有人知道这个错误是什么意思吗?为什么我会收到它?或者可以推荐一个库来执行此功能?

将分钟转换为秒,然后使用
gmdate(“H:i:s”,时间单位为秒)//在您的例子中,48

错误消息是很容易解释的?您认为
fmod()
有什么作用?