使用时刻获取所有星期一月份日期,js

时间:2015-11-09 23:18:23

标签: javascript jquery momentjs

有没有办法使用moment.js库获取当月的所有星期一日期。

我知道我可以在月底结束:

moment().endOf('month')

但是如何获得当前/任何月份的所有星期一日期。

我不想在javascript默认日期库中使用某些函数。请使用Moment Js Library参考代码。

3 个答案:

答案 0 :(得分:17)

我刚刚阅读过docs并且找不到任何返回数组的方法,所以你只需要使用循环

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

答案 1 :(得分:8)

<强>更新

我为此做了一点drop in。将其添加到您的页面:

<script src="https://gist.github.com/penne12/ae44799b7e94ce08753a/raw/moment-daysoftheweek-plus.js"></script>

然后:

moment().allDays(1) //=> [...]
moment().firstDay(1)

等 - 随时查看source

旧帖子

此功能应该有效:

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;
}

用法:本月为getMondays(),不同月份为getMondays(moment().month("Feb").toDate())

jabclab's Stack Overflow Answer,修改为包含自定义日期参数。

答案 2 :(得分:5)

我知道这已经过时了,但这是Google首先出现的问题。

您可以使用我的moment-weekdaysin moment.js插件获取当月的所有星期一:

moment().weekdaysInMonth('Monday');