将int echo毫秒转为minuets和seconds

时间:2016-11-07 15:09:26

标签: php mysql

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

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

打印出来的表格如下:

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

打印出7800

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

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

我试过了:

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

7.8秒以外,打印为02:10:00

1 个答案:

答案 0 :(得分:2)

您只需使用divide and modulo operators来构建变量,并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)

?>