这是我的两个约会

var startdate = '11-12-2016';
var stopdate = '13-12-2016';


我想在这两个日期之间循环。所以,我确实是这样

var startMedicine = new Date(startdate);
var stopMedicine = new Date(stopdate);
while(startMedicine <= stopMedicine){
  console.log(startdate)
}


但是我正在浏览器中运行无限循环。

我怎样才能做到这一点。

注意 :

我不想为此使用jQuery。

如果开始日期和结束日期相同,则应仅循环一次,并且输入日期将始终为d / m / y格式。我的代码有什么错误?请帮助

更新:

我误认为日期格式,我的日期格式是d-m-y。我该怎么做一个..

最佳答案

使用getDate每次迭代将日期递增一天

startdateArr = startdate.split('-');
stopdateArr = stopdate.split('-');

var startMedicine = new Date(startdateArr[2],startdateArr[1]-1,startdateArr[0]);

var stopMedicine = new Date(stopdateArr[2],stopdateArr[1]-1,stopdateArr[0]);
// thanks RobG for correcting on month index
while(startMedicine <= stopMedicine){
  var v  = startMedicine.getDate() + '-' + (startMedicine.getMonth() + 1) + '-' +   startMedicine.getFullYear();
  console.log(v);
  startMedicine.setDate(startMedicine.getDate()+1);
}


在js月中,索引从0开始,因此nov为12月10日。是11岁,这就是为什么我使用getMonth() + 1
`

07-25 21:22