我有开始时间、结束时间和间隔。
我必须获取开始时间和结束时间之间的时间段。
我有
var starttime = "09:50:00";
var endtime = "10:50:00";
var interval = "10";
Run Code Online (Sandbox Code Playgroud)
我想要time slotsas 数组
var timeslots = ["09:50:00","10:00:00","10:10:00","10:20:00","10:30:00","10:40:00","10:50:00"];
Run Code Online (Sandbox Code Playgroud)
、starttime和endtime可能interval会有所不同。如何获得想要的时隙?
要将间隔添加到我的时间中:
function addMinutes(time, minsToAdd) {
function D(J){ return (J<10? '0':'') + J;};
var piece = time.split(':');
var mins = piece[0]*60 + +piece[1] + +minsToAdd;
return D(mins%(24*60)/60 | 0) + ':' + D(mins%60);
} //this is working
Run Code Online (Sandbox Code Playgroud)
我在下面尝试生成time slot数组。
var starttime = "09:50:00";
var interval = "10";
var endtime = "10:50:00";
var timeslots =[stime];
while(starttime ==endtime ){
starttime = addMinutes(starttime , interval);
timeslots.push(stime);
}
alert(timeslots.length);
Run Code Online (Sandbox Code Playgroud)
但数组长度显示1,意味着不起作用......
请帮助我纠正这个问题..或者以任何其他方式帮助我...
我无法让你的 addMinutes 函数工作(chrome 不断变得无响应),所以我实现了我自己的。
我不知道你在哪里声明了 stime,但我将 stime 更改为 starttime,并将 starttime == endtime 更改为 starttime != endtime 并且代码有效。
function addMinutes(time, minutes) {
var date = new Date(new Date('01/01/2015 ' + time).getTime() + minutes * 60000);
var tempTime = ((date.getHours().toString().length == 1) ? '0' + date.getHours() : date.getHours()) + ':' +
((date.getMinutes().toString().length == 1) ? '0' + date.getMinutes() : date.getMinutes()) + ':' +
((date.getSeconds().toString().length == 1) ? '0' + date.getSeconds() : date.getSeconds());
return tempTime;
}
var starttime = "09:50:00";
var interval = "10";
var endtime = "10:50:00";
var timeslots = [starttime];
while (starttime != endtime) {
starttime = addMinutes(starttime, interval);
timeslots.push(starttime);
}
alert(timeslots);
Run Code Online (Sandbox Code Playgroud)
演示:
https://jsfiddle.net/vay9rL7g/
结果:
09:50:00,10:00:00,10:10:00,10:20:00,10:30:00,10:40:00,10:50:00