计算几小时和几分钟的PHP

时间:2012-08-24 17:51:25

标签: php time milliseconds

好的,所以我发送一个整数到我的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';

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:6)

<?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

答案 1 :(得分:-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;
}

类似的代码,包括小时,分钟和秒。