2011-10-28 447 views

回答

13
$hours = intval($totalMinutes/60); 
$minutes = $totalMinutes - ($hours * 60); 

编辑成PHP

+1

@Jon我希望大多数程序员能够接受这一点,并且能够以他们所使用的任何语言来完成他们想做的事情。你说得对,它不是PHP,但问题在于它向OP提供他需要解决问题的信息?我认为会的。 – corsiKa

10

这种转换是使用整数除法和模运算符完成的。随着整数除法你找出多少的“大”单位你,并与你模找出多少个“小”单位都留下来:

define('MINUTES_PER_HOUR', 60); 

$total_minutes = 525; 
$hours = intval($total_minutes/MINUTES_PER_HOUR); // integer division 
$mins = $total_minutes % MINUTES_PER_HOUR;   // modulo 

printf("%d minutes is really %02d:%02d.\n", $total_minutes, $hours, $mins); 

See it in action

+0

只需添加到此答案。 %是模数运算符,它给出了除法的其余部分。即8%5 = 3。 – NickLH

+0

很好的答案,谢谢你,并感谢其他人的答案! – Valoda

2

floor(525/60)给出(8.75向下舍入到8)的小时数。

525 % 60给出了分钟数(模运算符)。

+0

525/60将返回8.75,但约75?还有一个小时.. !!我们如何在几个小时内添加它? –

1

我为我的女朋友做了60分钟的时间间隔,例如1 = 60,2 = 120,3 = 180,4 = 240,5 = 300,6 = 360等等,然后我告诉她得到她的分钟,例如337找到最接近的数字,没有超过那将是5然后使用数字5等于并从您的原始分钟减去337-300 = 37其余的是分钟因此337分钟等于5小时37分钟