//So I have and array of months
const months = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'];
// If the input is startDate: 1-1-2019 & endDate: 3-15-21
// It should return an array like so:
const monthsBetweenDates = [January,February,March,April,May,June,July,August, September, October, November,December, January,February,March,April,May,June,July,August, September, October, November, December, January, Feb, March];
// The returned/new array should have all months between the start and end date above in Order, duplicated needed in order as well.
非常感谢您的帮助和时间。如果您还有其他问题,请告诉我。
function stringToDate(_date,_format,_delimiter)
{
var formatLowerCase=_format.toLowerCase();
var formatItems=formatLowerCase.split(_delimiter);
var dateItems=_date.split(_delimiter);
var monthIndex=formatItems.indexOf("mm");
var dayIndex=formatItems.indexOf("dd");
var yearIndex=formatItems.indexOf("yyyy");
var month=parseInt(dateItems[monthIndex]);
month-=1;
var formatedDate = new Date(dateItems[yearIndex],month,dateItems[dayIndex]);
return formatedDate;
}
var date1 = stringToDate('01/01/2019','mm/dd/yyyy','/')
var date2 = stringToDate('08/15/2021','mm/dd/yyyy','/')
var year1 = date1.getFullYear();
var month1=date1.getMonth();
var year2 = date2.getFullYear();
var month2=date2.getMonth();
months=['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'];
myArray = [];
for(let i=year1;i<= year2;i++){
for(let j=0; j<12;j++){
if (i == year1 && j >= month1)myArray.push(months[j]);
if (i > year1 && i <year2)myArray.push(months[j]);
if (i == year2 && j <= month2)myArray.push(months[j]);
}
}
console.log(myArray);