2017-09-26 1 views
-1

Je me demande comment créer une boucle unique pour créer une variable entre aujourd'hui et la date de début.Javascript mois creux et mois

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); 
} 

Le résultat devrait être 11-15, 12-15, 1-16 et ainsi de suite jusqu'à aujourd'hui 9-17. Je ne sais pas comment je peux ajouter une année à mon code.

+1

Pour commencer, je vous recommande d'utiliser une bibliothèque de dates telle que moment.js. Vous serez reconnaissant de l'avoir fait. –

+1

Un indice: 11-15 est un calcul d'entier qui produit -4. –

Répondre

0

En supposant startdate est une chaîne que vous pouvez utiliser ci-dessous le code

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

Eh bien, vous pouvez utiliser .split() sur startDate qui devrait être un string et l'extrait month et year et gardez-les incrémenter respectivement jusqu'à 09-17:

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);