用javascript减去军事时间

用javascript减去军事时间,javascript,time,subtraction,Javascript,Time,Subtraction,可能重复: 这是我从表单输入中提取时间的代码块 start = group.find('.startTime').val().replace(':',''), // like 0100 end = group.find('.endTime').val().replace(':',''), // like 0300 timeDiff = (end - start) < 0 ? (end - start + 2400) : (end - start), start

可能重复:

这是我从表单输入中提取时间的代码块

start = group.find('.startTime').val().replace(':',''),     // like 0100
end = group.find('.endTime').val().replace(':',''),         // like 0300
timeDiff = (end - start) < 0 ? (end - start + 2400) : (end - start),
start=group.find('.startTime').val().replace(':',''),类似0100
end=group.find('.endTime').val().replace(':','')//类似0300
timeDiff=(结束-开始)<0?(结束-开始+2400):(结束-开始),
timeDiff
说明了午夜过后的时间,因此,如果我尝试从0100减去2300,得到-2200,它将2400相加,得到0200或2小时的正确差值

我的问题出现了,我试图减去一些时间,比如2100-2030(这应该给我半个小时),但因为这只是一个原始数字,我得到的实际差值是70。我的问题是如何正确地减去这些?如果需要将其转换为日期或时间对象,正确的方法是什么?我研究了
setTime
方法,但这听起来不是我需要的


提前感谢。

如果没有
日期
对象(仅适用于时间值),您应该将时间转换为分钟或小时-始终只使用一个单位进行计算(尤其不要将它们混合为一个表示六位数的十进制数)


奇怪的是,当你写这个问题时,没有人告诉你许多其他问题。。。这是一个常见问题。如果您想使用
日期
对象,请查看
设置小时数
/
设置分钟数
。中的方法正是我所需要的。只是没有搜索正确的术语。谢谢,我会记得,我最终设置了日期对象,就像这里的答案一样,然后减去毫秒值并将它们转换为小时。
function toTime(string) {
    var m = string.match(/(\d{2}):({\d2})/);
    return m && 60 * parseInt(m[1], 10) + parseInt(m[2], 10),
}
var start = toTime( group.find('.startTime').val() ),
    end = toTime( group.find('.endTime').val() );

var timeDiff = Math.abs(end - start);

function fromTime(minutes) {
    var m = minutes % 60,
        h = (minutes - m) / 60;
    return ("0"+h).substr(-2)+":"+("0"+m).substr(-2);
}