首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Modulus返回时间组件

使用Modulus返回时间组件
EN

Stack Overflow用户
提问于 2010-03-03 14:14:38
回答 2查看 8.5K关注 0票数 2

有人在一个班次中做了20小时42分16秒,总共74536秒。如何从该人员为该班次所做的秒数中获得小时数?

代码语言:javascript
复制
20 * 60 * 60      =    72000
     42 * 60      =     2520
          16      =       16
                  +    -----
Total             =    74536
____________________________
Total % 60        =  Seconds (16)
Total % ?         =  Minutes (42)
Total % ?         =    Hours (20)

已经尝试了84600;结果是当一个数字低于模数时,它真的不是很有帮助,而且如果有人只登录几秒钟,我将不得不捕捉到一些东西……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-03 14:37:08

你需要同时使用模数和除法:

代码语言:javascript
复制
t = seconds_in_shift;
secs = t % 60;
t /= 60;
mins = t % 60;
t /= 60;
hour = t;

或者:

代码语言:javascript
复制
secs =  ttime % 60;
mins = (ttime / 60) % 60;
hour =  ttime / 3600;

另一种选择是使用标准C(<stdlib.h>)中的div()函数:

代码语言:javascript
复制
div_t v1 = div(ttime, 60);
div_t v2 = div(v1.quot, 60);

在此之后,v1.rem包含秒;v2.rem包含分钟,v2.quot包含基于最初在ttime中的秒数的小时。

票数 5
EN

Stack Overflow用户

发布于 2019-04-04 01:46:17

根据Jonathan的回答,我认为准确的答案应该是这个…

代码语言:javascript
复制
$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";

但是,如果您的服务器安装了PHP7,则可以使用intdiv()函数。一种整数除法,其中余数被丢弃。

代码语言:javascript
复制
// $hour = ($total_time - $min) / 60; old code but still works
$hour = intdiv($total_time, 60); // PHP7 and above code
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2369137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档