我有一个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
答案 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)
?>