可能重复:
check time difference in javascript
calculate time difference in javascript
这是我从表单输入中提取时间的代码块,
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),
timeDiff
说明了午夜过去的时间,所以如果我尝试从0100减去2300,然后得到-2200,它会增加2400以获得0200或2小时的正确差异。
我的问题出现在我试图减去某些时间,如2100 - 2030(这应该给我一个半小时),但因为它只是一个原始数字我得到70的实际差异。我的问题是我如何正确地减去这些?如果我需要将它转换为日期或时间对象,那么这样做的正确方法是什么?我查看了setTime
方法,但这听起来并不像我需要的那样。
提前致谢。
答案 0 :(得分:0)
没有Date
个对象(对于仅限时间的值似乎没问题),您应该将时间转换为分钟或小时 - 总是只用一个单位计算(尤其不要将它们混合成一个表示六十进制的十进制数字)一个)!
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);
}