计算24小时的时差

时间:2011-01-27 17:14:33

标签: javascript

我需要从0到23减去两个24小时的时间值。

例如,21:00-22:00应该返回23小时而不是-1(!)小时。

我不关心会议记录。

我尝试过搜索,却找不到。但是我觉得它已经有了它的功能,所以没有费心去写一个。

谢谢大家。

4 个答案:

答案 0 :(得分:1)

减去两次,如果结果为负,则加上24。

答案 1 :(得分:1)

我想你想要的是21:00-22:00给你23个小时。换句话说,如果今天是10点,那么明天9点就是23个小时。这很容易。

hours = (time1 - time2 + 24) % 24;

其中

  • time1和time2必须以小时为单位
  • %是模运算符

为什么要添加24?在取括号的模数时,在括号内添加24会解决未定义行为的问题。这比if语句更好,因为它不会使管道停滞。

答案 2 :(得分:0)

使用模数:(24+a-b)%24

(我假设11这里是一个拼写错误,正确答案是23)

答案 3 :(得分:0)

只需将它们视为整数并将其标准化为0-23。

var c = (a%24 - b%24);
return c < 0 ? c+24;

如果您真的认为21:00 - 22:00 == 11,那么您必须意味着您希望两次之间的12小时小时值之间存在差异,这些值以24小时为单位表示,因此您确实需要模数12:

var c = (a%12 - b%12);
return c < 0 ? c+12;

返回(9 - 10)+ 12 = 11