确定给定月份和年份的第三个星期五

Hel*_*Che 2 date momentjs

给定一年和一个月,我想确定该月的第三个星期五的日期。我将如何利用 moment.js 来确定这一点?

例如 October 2015 => 16th October 2015

Vin*_*zoC 5

将年和月作为整数,并假设星期五是您所在地区的一周的第五天(星期一是一周的第一天),您可以:

function getThirdFriday(year, month){
    // Convert date to moment (month 0-11)
    var myMonth = moment({year: year, month: month});
    // Get first Friday of the first week of the month
    var firstFriday = myMonth.weekday(4);
    var nWeeks = 2;
    // Check if first Friday is in the given month
    if( firstFriday.month() != month ){
        nWeeks++;
    }
    // Return 3rd Friday of the month formatted (custom format)
    return firstFriday.add(nWeeks, 'weeks').format("DD MMMM YYYY");
}
Run Code Online (Sandbox Code Playgroud)

如果您将月份和年份作为字符串,则可以使用矩解析函数而不是对象表示法,因此您将拥有:

var myMonth = moment("October 2015", "MMMM yyyy");
Run Code Online (Sandbox Code Playgroud)

如果星期五不是一周的第五天(索引为 4 的那一天),您可以使用 moment.weekdays()