将回声转换为毫秒到分钟和秒


turn int echo milliseconds to minuets and seconds

我有一个php查询,它从数据库中获取一个包含int的字段,例如7800。我知道7800是7.7秒或0.13分钟。

我需要一种方法将其显示为00:00:08(四舍五入)

表打印出来如下所示:

<td><?= $row["timeSpent"] ?></td>

输出7800

我需要00:00:08 (H,M,S)

在数据库中保存为int,而不是datetime

I have try:

    <td><? echo gmdate("H:i:s",  $row['timeSpent']); ?></td>

除了7.8秒打印为02:10:00

您只需要使用除法和取模运算符来构建变量,并使用str_pad来填充字符串位前导零:

<?php 
function convertToTime($time) {
    $time = round($time/1000);
    $hours = floor($time/3600);
    $time = $time%3600;
    $minutes = floor($time/60);
    $seconds = $time%60;
    return str_pad($hours, 2, '0',STR_PAD_LEFT) . ':' . str_pad($minutes, 2, '0',STR_PAD_LEFT) . ':' . str_pad($seconds, 2, '0',STR_PAD_LEFT);
}
var_dump(convertToTime(7800)); // string '00:00:08' (length=8)
var_dump(convertToTime(60000)); // string '00:01:00' (length=8)
var_dump(convertToTime(3600000)); // string '01:00:00' (length=8)
var_dump(convertToTime(42687000)); // string '11:51:27' (length=8)
?>