我已经很好地寻找了我正在寻找的东西,但似乎无法找到我需要的东西。我是jQuery和JavaScript的新手。
我想要做的就是从另一个时钟中减去一个24小时的时钟,以查找使用JQuery或JavaScript分配了多少小时,即开始时间:12:00结束时间:16:00将是4小时。
从第二天的12:00到12:00,如何在没有问题的情况下这样做?
我不是在处理日期,只是时间。
目前,时间作为start_time
end_time
的对象的一部分存储:
var shift = {'location':$('#shift_location').val(),
'shift_date': $('#shift_date').val(),
'start_time':$('#shift_start_time').val(),
'end_time':$('#shift_end_time').val()
};
var shift_list = JSON.parse(localStorage.shift);
shift_list.push(shift);
localStorage.shift = JSON.stringify(shift_list);
答案 0 :(得分:1)
您可以使用momentjs在javascript中处理日期。
示例(moment doc,fiddle):
var start_time = "12:00";
var end_time = "16:00";
var start = moment.duration(start_time, 'h');
var end = moment.duration(end_time, 'h');
alert(end.subtract(start).hours()); // 4
当然,由于任务的简单性,你总是可以使用普通的javascript:
var start_time = "12:00";
var end_time = "16:00";
alert(parseInt(end_time, 10) - parseInt(start_time, 10)); // 4
答案 1 :(得分:1)
使用给定的信息,即start_time和end_time,您无法覆盖多天。它们只需在0到23小时之间振荡。计算多天没有计数器。如果你需要,你需要另外两个状态,它们将存储start_date和end_date,它们将作为@John Boker所指出的反击。但如果您确定差异从未超过24小时,那么我们可以使用JAVASCRIPT: subtracting Time and getting its number of minutes 函数中的parseTime进行我们自己的修改。
function parseTime(s) {
var c = s.split(':');
return parseInt(c[0]) * 60 + parseInt(c[1]);
}
var limit = parseTime("23:59");
function getDiff(start_time, end_time){
var a = parseTime(start_time), b = parseTime(end_time);
if(b < a) // means its the next day.
return Math.round((limit - a + b)/60);
else if(b > a)
return Math.round((b - a)/60);
else if(b - a == 0)
return 24.0;
else
alert("Invalid data");
}
alert(getDiff("12:00", "11:00"));