js 列出日期區間並排除其中的特定日期

如果想要處理時間方面的問題,可以使用 moment.js 這隻 plugin,然後用下面的方法寫就可以了。

var excludeDates=['2019-01-17','2019-01-22', '2019-1-25'];
    function getDates(startDate, stopDate, excludeDates) {
        var dateArray = [];
        var currentDate = moment(startDate);
        var stopDate = moment(stopDate);
        while (currentDate <= stopDate) {
            let currentDateString=moment(currentDate).format('YYYY-MM-DD');
            if(!excludeDates.includes(currentDateString)){
                dateArray.push( moment(currentDate).format('YYYY-MM-DD') )
            }
            currentDate = moment(currentDate).add(1, 'days');
        }
        return dateArray;
    }
    dates=getDates(new Date('2019-01-15'),new Date('2019-01-28'), excludeDates);
    console.log(dates)

留言