将秒转换为小数点后两位的时间


Converting seconds to time with two decimal places

可能重复:
在PHP中将秒转换为天、小时、分钟、秒
如何将小数转换为时间,例如HH:MM:SS

我在这里所做的是,我在mysql中将posts时间保存为UTC,在从sql中检索时间戳后,我使用strtotime()将其转换为秒,然后在这些秒中添加偏移时间以显示当前本地时间。现在的问题是,当我试图将这些秒重新转换为小时时,比如

$seconds = 330*60 //Thats 5.30 hours and 60 seconds gives me 19800 as an output

现在,当我把它重新转换回小时时,它显示的是5.50,而不是5.30

sprintf ("%.2f", 19800/60/60); //Output of 5.50 instead I want is 5.30 

我知道这是一个数学表达式,我做错了,任何帮助都将得到一个干净的解释。

不是最优雅的解决方案,但它很有效:

$original = (19800 / 60 / 60);
$hours = floor($original);
$minutes = ($original - $hours) * 60;

或者这可能是更好的使用模量:

$hours = floor(19800 / 60 / 60);
$minutes = (19800 / 60) % 60;