JavaScript: get array of day names of given date (month/year)

how can i get the whole month in day namesof given month/year? like :

var year = "2000";
var month = "7"

... some code here that makes an array with names of days of the given month...

and the output looks something like:

Array ("1. Sunday", "2. Monday", "3. Tuesday", ... "29. Thursday", "30. Friday", "31. Saturday");

Best regards, Chris

Answers:

Answer

This should do what you asked.

function getDaysArray(year, month) {
    var numDaysInMonth, daysInWeek, daysIndex, index, i, l, daysArray;

    numDaysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    daysInWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    daysIndex = { 'Sun': 0, 'Mon': 1, 'Tue': 2, 'Wed': 3, 'Thu': 4, 'Fri': 5, 'Sat': 6 };
    index = daysIndex[(new Date(year, month - 1, 1)).toString().split(' ')[0]];
    daysArray = [];

    for (i = 0, l = numDaysInMonth[month - 1]; i < l; i++) {
        daysArray.push((i + 1) + '. ' + daysInWeek[index++]);
        if (index == 7) index = 0;
    }

    return daysArray;
}
Answer

Try this

<!DOCTYPE html>
<html>
<body>

<p id="demo">Click the button to display todays day of the week.</p>

<button onclick="myFunction()">Try it</button>

<script type="text/javascript">
function daysInMonth(month,year) {
    return new Date(year, month, 0).getDate();
}

function myFunction()
{var b=[],weekday = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],month=7,year=2000;
for(var i=1,l=daysInMonth(month,year);i<l;i++){
var d = new Date(year,month-1,i);
b.push(i+"."+weekday[d.getDay()]);
}
console.log(b);}//b is the desired array
</script>

</body>
</html>
Answer

DateJS has the functions you need to implement the logic:

As @natlee75 noted, you can handle the logic from there.

Answer

You can do the logic yourself pretty easily using the standard JavaScript Date object. Here's an example of getting one date to push into your array. Just loop through the entire month calling the method. (jsFiddle)

var daysOfTheWeek = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

function getDisplay(month, day, year) {
    var d = new Date(year, month-1, day);
    return day + '. ' + daysOfTheWeek[d.getDay()];
}

array_push($dates, getDisplay(7, 4, 2012));
Answer

Try this and see the result in console.

<script>
var weekday = ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
               'Thursday', 'Friday', 'Saturday'];
var month = '7';
var year = '2012';
realMonth = parseInt(month,10)-1;
var monthObj = {};
for(var i=1;i<30;i++)
{
    var d = new Date(year,realMonth,i);              
    monthObj[i] = weekday[d.getDay()];
}
console.log(monthObj);
</script>
Answer

I know this is an old question, but today a question linked to this, and I'd like to point out one don't really need to do much things other than convert day (0-6) to string (Sunday-Saturday)

function getDays(year, month) { //month: 1-based, as normal person
    --month //change it to 0-based, as Date object
    let dayname = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
    let date = new Date(year, month)
    let result = []
    while(date.getMonth()==month){
      result.push(`${date.getDate()}. ${dayname[date.getDay()]}`)
      date.setDate(date.getDate()+1)
    }
    return result;
}

console.log(getDays(2019,12))

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.