将两个日期之间的月数作为字符串数组返回

问题描述 投票:-2回答:1
//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.

非常感谢您的帮助和时间。如果您还有其他问题,请告诉我。

javascript function date calendar arr
1个回答
0
投票

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);
© www.soinside.com 2019 - 2024. All rights reserved.