2017-09-26 104 views
-1

我想知道如何创建一个单一的循环来创建今天和开始日期之间的变量。JavaScript循环槽几个月和几年

var startDate = 11-15; /*that means 11th month of 2015*/ 

var d = new Date(); 
var m = d.getMonth() + 1; 
var y = d.getFullYear().toString().substr(-2); 

for (var i = 11; i <= m; i++) { 
    console.log(i); 
} 

结果应该是11-15,12-15,1-16等等直到今天9-17。我不知道如何将年份添加到我的代码中。

+1

对于初学者,我建议你使用诸如moment.js之类的日期库。你会很感激你。 –

+1

提示:11-15是一个产生-4的整数计算。 –

回答

0

假设开始日期是一个字符串,直到你达到09-17你可以分别使用下面的代码

var startDate = "11-15" 

var d = new Date(); 
var m = d.getMonth() + 1; 
var y = d.getFullYear().toString().substr(-2); 
d=startDate.split("-") 
counter = parseInt(d[0]) 
for(var i=parseInt(d[1]);i<=parseInt(y);i++) 
{ 
    for(var j=counter;j<=12;j++){ 
    if(j>m && i==y){ 
     continue 
    } 
    console.log(j+"-"+i) 
    } 
    counter = 1; 
} 
0

那么你可以使用.split()超过startDate这应该是一个string,并提取monthyear,并保持递增来:

var startDate = "11-15"; 
 

 
var month = parseInt(startDate.split("-")[0]); 
 
var year = parseInt(startDate.split("-")[1]); 
 

 
var results = []; 
 

 
while(!(year === 17 && month === 9)){ 
 
    if(month<12){ 
 
    month++; 
 
    }else{ 
 
    month = 1; 
 
    year++; 
 
    } 
 
    console.log(month+'-'+year); 
 
    results.push(month+'-'+year); 
 
} 
 

 
console.log(results);

相关问题