How to get next seven days from X and format in JS

前端 未结 6 2238
渐次进展
渐次进展 2020-12-06 19:25

I want to print something like this (a 7-day calendar) but with the ability to start from any date I want.

Monday, 1 January 2011
Tuesday, 2 January 2011
Wed         


        
6条回答
  •  无人及你
    2020-12-06 20:25

    This seems to be what you're looking for:

    function GetDates(startDate, daysToAdd) {
        var aryDates = [];
    
        for (var i = 0; i <= daysToAdd; i++) {
            var currentDate = new Date();
            currentDate.setDate(startDate.getDate() + i);
            aryDates.push(DayAsString(currentDate.getDay()) + ", " + currentDate.getDate() + " " + MonthAsString(currentDate.getMonth()) + " " + currentDate.getFullYear());
        }
    
        return aryDates;
    }
    
    function MonthAsString(monthIndex) {
        var d = new Date();
        var month = new Array();
        month[0] = "January";
        month[1] = "February";
        month[2] = "March";
        month[3] = "April";
        month[4] = "May";
        month[5] = "June";
        month[6] = "July";
        month[7] = "August";
        month[8] = "September";
        month[9] = "October";
        month[10] = "November";
        month[11] = "December";
    
        return month[monthIndex];
    }
    
    function DayAsString(dayIndex) {
        var weekdays = new Array(7);
        weekdays[0] = "Sunday";
        weekdays[1] = "Monday";
        weekdays[2] = "Tuesday";
        weekdays[3] = "Wednesday";
        weekdays[4] = "Thursday";
        weekdays[5] = "Friday";
        weekdays[6] = "Saturday";
    
        return weekdays[dayIndex];
    }
    
    var startDate = new Date();
    var aryDates = GetDates(startDate, 7);
    console.log(aryDates);​
    ​
    

    Result (as of today):

    ["Thursday, 5 April 2012",
     "Friday, 6 April 2012", 
     "Saturday, 7 April 2012", 
     "Sunday, 8 April 2012", 
     "Monday, 9 April 2012", 
     "Tuesday, 10 April 2012", 
     "Wednesday, 11 April 2012", 
     "Thursday, 12 April 2012"]
    

    Here's a working fiddle.

提交回复
热议问题