Javascript 当前月份的周结束日期

Javascript 当前月份的周结束日期,javascript,Javascript,我每周(比如说,周五)生成一份报告,我需要每个月的周末日期。如果是新月份,则返回该月份的最后日期。。 我在这里第一次约会:- var firstDay = new Date(date.getFullYear(), date.getMonth(), 1); 但是无法继续。JavaScript没有提供直接获取此类信息的功能,但是您可以通过计算一个月的最后一个星期五来完成,例如 function lastFridayOfMonth(year, month) { // if month wi

我每周(比如说,周五)生成一份报告,我需要每个月的周末日期。如果是新月份,则返回该月份的最后日期。。 我在这里第一次约会:-

var firstDay = new Date(date.getFullYear(), date.getMonth(), 1); 

但是无法继续。

JavaScript没有提供直接获取此类信息的功能,但是您可以通过计算一个月的最后一个星期五来完成,例如

function lastFridayOfMonth(year, month) {
    // if month will start from one not from 0  then we will have month + 1
    var lastDay = new Date(year, month + 2, 0); 
    var lastDayNumber = 5;
    if(lastDay.getDay() < lastDayNumber) {
        lastDay.setDate(lastDay.getDate() - 7);
    }
    lastDay.setDate(lastDay.getDate() - (lastDay.getDay() - lastDayNumber));
    return lastDay;
}
函数lastFridayOfMonth(年,月){
//如果月份从1开始,而不是从0开始,则月份将为+1
var lastDay=新日期(年、月+2,0);
var lastDayNumber=5;
if(lastDay.getDay()
签出软件包。它为您提供了很多日期和时间间隔的可能性。它与日历中的规则类似

为了你的案子。每周五:

从'RRule'导入{RRule}
常量规则=新规则({
频率:RRule.WEEKLY,
间隔时间:1,
平日:[RRule.FR],
})
//每隔一个星期五,你会得到一系列的日期
规则.介于(新日期(UTC日期(2012,7,1)),新日期(UTC日期(2012,8,1)))

尝试使用以下功能

函数getWeekEndDates(日期){ 让year=date.getFullYear(); let month=date.getMonth(); 第一天=新日期(年、月、1); lastDay=新日期(年、月+1,0); 让周末=[]; 让dateFriday=第一天; if(firstDay.getDay()!==5){ dateFriday=新日期(年、月、1+((12-firstDay.getDay())%7)); 周末。推送(第一天); } while(dateFriday.getMonth()==月){ 周末。推送(日期周五); dateFriday=新日期(年、月、dateFriday.getDate()+7); } if(lastDay.getDay()!==5){ 周末。推送(最后一天); } 周末返回; } getWeekEndDates(newdate()).forEach(x=>console.log(x.toDateString()); getWeekEndDates(新日期(2020,0,1)).forEach(x=>console.log(x.toDateString()); getWeekEndDates(新日期(2021,0,1)).forEach(x=>console.log(x.toDateString())