JSFiddle - React, Tailwind, and code Playground

by evan

JavaScript

var start = '8-2014';
var end = '7-2012';

var generateDateSeries = function (start, end) {
    var startDate, endDate, dateSeries = [], working = [];
    startDate = start.split('-');
    startDate = [parseInt(startDate[0], 10), parseInt(startDate[1], 10)];
    endDate = end.split('-');
    endDate = [parseInt(endDate[0], 10), parseInt(endDate[1], 10)];
    
    if (startDate[0] < 1 || startDate[0] > 12 ||
        endDate[0] < 1 || endDate[0] > 12 ||
        startDate[1] > endDate[1]) {
        throw new Error("Invalid date range.");
    }
    
    working = startDate;
    
    while(1) {
        
        dateSeries.push(working.join('-'));
        
        if (working[1] === endDate[1] && working[0] === endDate[0]) {
            break;
        }
        
        if (working[0] === 12) {
            working[0] = 1;
            working[1] += 1;
        } else {
            working[0] += 1;
        }   
    }
    return dateSeries;
};

console.log(generateDateSeries(start, end));