Returning Time Components with Modulus

流过昼夜 提交于 2019-12-04 18:02:04

You need to use both modulus and division:

t = seconds_in_shift;
secs = t % 60;
t /= 60;
mins = t % 60;
t /= 60;
hour = t;

Or:

secs =  ttime % 60;
mins = (ttime / 60) % 60;
hour =  ttime / 3600;

One other option uses the div() function from Standard C (<stdlib.h>):

div_t v1 = div(ttime, 60);
div_t v2 = div(v1.quot, 60);

After that, v1.rem contains the seconds; v2.rem contains the minutes, and v2.quot contains the hours based on the number of seconds originally in ttime.

Based on Jonathan's reply, I believe the accurate answer should be this…

$total_time = 61000;
$sec = $total_time % 60;
$total_time = ($total_time - $sec) / 60;
$min = $total_time % 60;
$hour = ($total_time - $min) / 60;
echo "$hour hours, $min minutes and $sec seconds";

But if your server has PHP7 installed, you can use the intdiv() function. An integer division in which the remainder is discarded.

// $hour = ($total_time - $min) / 60; old code but still works
$hour = intdiv($total_time, 60); // PHP7 and above code
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!