Is there any way to get all the Monday DATES in the current month using moment.js library.
I know I can get the end of the month with:
moment().endOf('month')
but how to get all monday dates of current / any month.
I dont want some function in javascript default date library. Please refer the code using Moment Js Library.
I've just read docs and haven't found any method that returns an array, so you need to do it only with loop
var monday = moment()
.startOf('month')
.day("Monday");
if (monday.date() > 7) monday.add(7,'d');
var month = monday.month();
while(month === monday.month()){
document.body.innerHTML += "<p>"+monday.toString()+"</p>";
monday.add(7,'d');
}
check this out
Update
I made a little drop in for this. Add it to your page:
<script src="https://gist.github.com/penne12/ae44799b7e94ce08753a/raw/moment-daysoftheweek-plus.js"></script>
And then:
moment().allDays(1) //=> [...]
moment().firstDay(1)
etc - feel free to check out the source
Old Post
This function should work:
function getMondays(date) {
var d = date || new Date(),
month = d.getMonth(),
mondays = [];
d.setDate(1);
// Get the first Monday in the month
while (d.getDay() !== 1) {
d.setDate(d.getDate() + 1);
}
// Get all the other Mondays in the month
while (d.getMonth() === month) {
mondays.push(new Date(d.getTime()));
d.setDate(d.getDate() + 7);
}
return mondays;
}
Usage: getMondays()
for this month, or getMondays(moment().month("Feb").toDate())
for a different month.
From jabclab's Stack Overflow Answer, modified to include custom date param.
I know this is old but this is the first thing that comes up in Google.
You can get all the Mondays in the month by using my moment-weekdaysin moment.js plugin:
moment().weekdaysInMonth('Monday');