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 nam
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))
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;
}
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));
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>
DateJS has the functions you need to implement the logic:
As @natlee75 noted, you can handle the logic from there.
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>