3

好的,所以我以毫秒为单位向我的 mysql 数据库发送一个整数。现在,我试图让它显示: 播放时间:1 天 3 小时 15 分钟。但是我很难做到这一点,我只能得到分钟数天和小时,但它会是总小时数、总天数和总分钟数,而不是全部合二为一。我有这样的代码:

$time = $timeRow['time'];    
$seconds = floor($time / 1000);
$minutes = floor($seconds / 60);
$hours = floor($minutes / 60);
$days = round($hours / 24);
$milliseconds = $time % 1000;
$seconds = $seconds % 60;
$minutes = $minutes % 60;
echo'Time Played: '.$days.' days '.$hours.' hours '.$minutes.' minutes';

谁能帮我解决这个问题?

4

2 回答 2

7
<?php

$time = $timeRow['time'] / 1000;

$days = floor($time / (24*60*60));
$hours = floor(($time - ($days*24*60*60)) / (60*60));
$minutes = floor(($time - ($days*24*60*60)-($hours*60*60)) / 60);
$seconds = ($time - ($days*24*60*60) - ($hours*60*60) - ($minutes*60)) % 60;

echo'Time Played: '.$days.' days '.$hours.' hours '.$minutes.' minutes '.$seconds.' seconds';

测试:http ://codepad.viper-7.com/WBQQet

于 2012-08-24T17:54:17.253 回答
-1

您从原始数字生成每个变量,这就是为什么它告诉您它是 1 天 35 小时;而不是 1 天 11 小时。

您需要开始减去值:

$seconds = floor($time / 1000);
$minutes = floor($seconds / 60);
$hours = floor($minutes / 60);
$days = round($hours / 24);

for ($i = 0; $i < $days; $i++) {
    $hours -= 24;
}

还有一段类似的代码,用于小时、分钟和秒。

于 2012-08-24T17:55:29.687 回答