获取开始时间和结束时间之间的时间段

Dee*_*ran 1 jquery

我有开始时间结束时间间隔

我必须获取开始时间和结束时间之间的时间段。

我有

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)

starttimeendtime可能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,意味着不起作用......

请帮助我纠正这个问题..或者以任何其他方式帮助我...

Sea*_*ell 5

我无法让你的 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