if / else语句javascript,循环错误

时间:2015-09-18 19:15:24

标签: javascript

这让我疯狂,我无法弄明白为什么。我正在制作一个预约系统,显示可用的时间段(在gCalendar中未预订的时间),将其划分,并根据指定的时间显示。

document.getElementById("availability").innerHTML = "";
var events = resp.items;
var time_sort = 30;
if (events.length > 0) {
  document.getElementById("availability").innerHTML = "";
  for (i = 0; i < events.length; i++) {
    var event = events[i];
    var event2 = events[i + 1];
    var d1 = new Date(event.end.dateTime);
    var d2 = new Date(event2.start.dateTime);
    var diff = d2 - d1;
    diff = Math.floor(diff / 60e3)
    if (diff >= time_sort) {
      var loop = Math.floor(diff / time_sort);
      var whenStart = new Date(d2 - time_sort * 60000);
      var whenEnd = new Date(d2);
      document.getElementById("availability").innerHTML += ("Available" +
        "\t" + loop + "\t" + whenStart + "\t\t" + whenEnd + "\t" + '<button>Reserve</button>' + "<br />");

    } else {
      whenStart = event.start.dateTime;
      whenEnd = event.end.dateTime;
    }
    if (!whenStart) {
      whenStart = event.start.date;
    }
  }
} else {
  document.getElementById("availability").innerHTML += "No upcoming events found.";
}
});
});

运行上面的代码时,我得到了一个不错的结果。

  

可用时间8星期六2015年9月19日11:30:00 GMT + 0800(CST)星期六2015年9月19日12:00:00 GMT + 0800(CST)预约
  可用2星期六2015年9月19日13:30:00 GMT + 0800(CST)星期六2015年9月19日14:00:00 GMT + 0800(CST)预约
  可用2 Sun Sep 20 2015 09:30:00 GMT + 0800(CST)2015年9月20日10:00:00 GMT + 0800(CST)预约
  可用2 Sun Sep 20 2015 11:30:00   GMT + 0800(CST)2015年9月20日星期日12:00:00 GMT + 0800(CST)储备

但是,我想扩展所有可用的时间块。例如,10:00-10:30,10:30-11:00,11:00-11:30,11:30-12:00等等。

可用的时间块数由变量循环表示(打印在8,2,2,2之上),然后向后移动(打印时间实际上是可用时间块的最后一个时间块)。

我以为我可以在var loop = Math.floor(diff / time_sort);之后使用一个简单的for循环,但我只得到一个可扩展8次的可用时间块 - 一个以12:00结束。

0 个答案:

没有答案