javascript - 当该月的最后一天是周末时,如何获取该月最后一个星期五的日期

标签 javascript node.js momentjs

当该月的最后一天是周末时,我们如何获取该月最后一个星期五的日期,例如 2020 年 5 月,该月的最后一个星期五是 29。

 Example input : may 2020

    output : may 29 2020 , since the last day of may which is 31 falls on weekend

        Example input : june 2020
output : june 30, 2020 , since the last day of june does not fall on weekend

最佳答案

从该月的最后一天开始计算天数。如果 friday(dayno =5) 不在 5 范围内,则减 5,否则加 2 。最后,如果天数为 0 或 6,则从该月的最后一天减去天数,否则返回该月的最后一天。

var calc = function(monthYear) {
    var lastDay = moment(monthYear, "MM-YYYY").endOf("month");
    var lastDayNumber = lastDay.day();
    var daystoSubtract;
    daystoSubtract =
        lastDay.day() >= 5 ?
        (daystoSubtract = lastDayNumber - 5) :
        (daystoSubtract = lastDayNumber + 2);
    if (lastDay.day() === 0 || lastDay.day() === 6) {
        return lastDay.subtract(daystoSubtract, "days");
    } else {
        return lastDay;
    }
};

console.log(calc("05-2020").format("DD-MM-YYYY"));
console.log(calc("06-2020").format("DD-MM-YYYY"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

关于javascript - 当该月的最后一天是周末时,如何获取该月最后一个星期五的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61055293/

相关文章:

node.js - 检测 Backbone 模型验证是否存在任何不需要的属性

javascript - ES6 Node.js/Express.js 模型对象的唯一主键

javascript - 在 Meteor 中添加时间和日期

javascript - momentjs 没有验证小时/分钟/秒

javascript - webpack: 'import' 不工作,而 'require' 工作正常

javascript - Primefaces AutoComplete 客户端和外观变化

javascript - AngularJS jsonp 成功错误

javascript - 在扩展组件的数据中使用时,扩展组件的数据未定义

javascript - 如何在 javascript 中获取今天、昨天或日期名称

javascript - Bootbox 回调无法正常工作