2015-03-22 2 views
0

Я объясню свой вопрос в самом коде. Пожалуйста, смотрите ниже кодесли условие на основе строки в цикле в jQuery

var monthNames = ["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"]; 
var ctdate = (new Date()).getMonth() + 1;// getting current month 
var str=new Date().getFullYear()+''; 
str= str.match(/\d{2}$/);//current year is 15(as this year is 2015) 
var strprev= str-1;//previous year is 14 
var dynmonths = new Array(); 
dynmonths = monthNames.slice(ctdate).concat(monthNames.slice(0, ctdate)); 

//here the output comes for last 12 months starting from currentmonth-12 (i.e APR in this case) to current month (i.e MAR) 
//dynmonths = ["APR","MAY","JUN","JUL","AUG","SEP","AUG","SEP","OCT","NOV","DEC","JAN","FEB","MAR"]; 

//I am rotating dynmonths in a for loop to get full dates i.e between (01-APR-14 to 01-MAR-15) 

for (var i = 0, length = dynmonths.length; i < length; i++) { 
var month = '01-' + dynmonths[i] + '-' + strcurrent; 
} 

Но проблема в том, что month принимает 14 для всех месяцев. Это неправильно. После 01-DEC-14 следующий месяц должен быть 01-JAN-15, 01-FEB-15 и так далее. Как проверить DEC в течение цикла и после того, как DEC год должен измениться в год + 1

Заранее спасибо

ответ

0

использование ниже код будет работать.

function ddd() 
 
{ 
 
var monthNames = ["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"]; 
 
var ctdate = (new Date()).getMonth() + 1;// getting current month 
 
var str=new Date().getFullYear()+''; 
 
str= str.match(/\d{2}$/);//current year is 15(as this year is 2015) 
 
var strprev= str-1;//previous year is 14 
 
var dynmonths = new Array(); 
 
dynmonths = monthNames.slice(ctdate).concat(monthNames.slice(0, ctdate)); 
 

 
//here the output comes for last 12 months starting from currentmonth-12 (i.e APR in this case) to current month (i.e MAR) 
 
//dynmonths = ["APR","MAY","JUN","JUL","AUG","SEP","AUG","SEP","OCT","NOV","DEC","JAN","FEB","MAR"]; 
 

 
//I am rotating dynmonths in a for loop to get full dates i.e between (01-APR-14 to 01-MAR-15) 
 

 
for (var i = 0, length = dynmonths.length; i < length; i++) { 
 

 
if(dynmonths[i]=='JAN') 
 
{ 
 
var str = parseInt(str)+parseInt(1); 
 
} 
 
var month = '01-' + dynmonths[i] + '-' + str; 
 
    document.writeln(month); 
 
\t document.write("<br />"); 
 
    
 
} 
 
}
<body onload="ddd()">

0

Вы можете объявить переменную BOOL = ложь и проверить, если вы на DEC изменить его истинным (или использовать счетчик с более чем на один год):

var monthNames = ["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"]; 
var ctdate = (new Date()).getMonth() + 1;// getting current month 
var str=new Date().getFullYear()+''; 
str= str.match(/\d{2}$/);//current year is 15(as this year is 2015) 
var strprev= str-1;//previous year is 14 
var dynmonths = new Array(); 
dynmonths = monthNames.slice(ctdate).concat(monthNames.slice(0, ctdate)); 

//here the output comes for last 12 months starting from currentmonth-12 (i.e APR in this case) to current month (i.e MAR) 
//dynmonths = ["APR","MAY","JUN","JUL","AUG","SEP","AUG","SEP","OCT","NOV","DEC","JAN","FEB","MAR"]; 

//I am rotating dynmonths in a for loop to get full dates i.e between (01-APR-14 to 01-MAR-15) 

var isPassYear = false; 

for (var i = 0, length = dynmonths.length; i < length; i++) { 
    var month; 
    if (isPassYear) 
     //do something 
    else 
     month = '01-' + dynmonths[i] + '-' + strcurrent; 

    if (monthNames[11] == dynmonths[i]) { 
     isPassYear = true; 
    } 
} 

второй вариант заключается в использовании объекта Date и добавить его месяц за единицу каждый раз, если вы установите добавить в месяц номер 12, что автоматический переход к следующему году.

Смежные вопросы