Javascript Momentjs-4月为第一周时的周数

Javascript Momentjs-4月为第一周时的周数,javascript,momentjs,Javascript,Momentjs,在momentjs中使用此函数,我可以找到一年中的周数: var dt = new Date(); var weekNumber = moment(dt).week(); 谁能告诉我如何将4月的第一周设置为第一周,从而将第52周设置为3月的最后一周 在文档中,我只能看到如何调整一年中的第一天(即周日或周一)。我两者都要做。周六实际上是第一天 非常感谢您的帮助。您必须添加一个自定义函数 样品 函数getCustomWeekNumber(weekNo){ var baseWeek

在momentjs中使用此函数,我可以找到一年中的周数:

    var dt = new Date();
    var weekNumber = moment(dt).week();
谁能告诉我如何将4月的第一周设置为第一周,从而将第52周设置为3月的最后一周

在文档中,我只能看到如何调整一年中的第一天(即周日或周一)。我两者都要做。周六实际上是第一天


非常感谢您的帮助。

您必须添加一个自定义函数

样品
函数getCustomWeekNumber(weekNo){
var baseWeek=力矩(“01/04/”,“DD/MM/”).week()-1;//13
var lastWeek=力矩(“31/12/”,“DD/MM/”)。周()//53;
返回weekNo>baseWeek?weekNo-baseWeek:(lastWeek-baseWeek)+weekNo;
}
var d=力矩().周();
console.log(getCustomWeekNumber(d))
d=力矩(“2016年4月1日”、“年月日”)。周();
console.log(getCustomWeekNumber(d))
d=时刻(“2016年3月24日”、“年月日”)。周();
console.log(getCustomWeekNumber(d))

您必须添加一个自定义函数

样品
函数getCustomWeekNumber(weekNo){
var baseWeek=力矩(“01/04/”,“DD/MM/”).week()-1;//13
var lastWeek=力矩(“31/12/”,“DD/MM/”)。周()//53;
返回weekNo>baseWeek?weekNo-baseWeek:(lastWeek-baseWeek)+weekNo;
}
var d=力矩().周();
console.log(getCustomWeekNumber(d))
d=力矩(“2016年4月1日”、“年月日”)。周();
console.log(getCustomWeekNumber(d))
d=时刻(“2016年3月24日”、“年月日”)。周();
console.log(getCustomWeekNumber(d))

但闰年是否也适用?因为我注意到闰年会导致一年多出一周。@leroydev没有。任何一年只能有53周。如果你还想确定,你可以上周计算。我将更新我的回答。为了支持闰年,您应该做的另一个重要更改是,让4月1日的年份生成,而不是使用“2016”,因为闰日发生在2月29日(导致4月的第一周比闰年晚一周)。@leroydev这是一个示例。您正在谈论的优化应该由您在代码中完成。@leroydev我已经更新了我的答案。此外,2016年是闰年。所以我想这一逻辑适用于所有情况。但闰年是否适用?因为我注意到闰年会导致一年多出一周。@leroydev没有。任何一年只能有53周。如果你还想确定,你可以上周计算。我将更新我的回答。为了支持闰年,您应该做的另一个重要更改是,让4月1日的年份生成,而不是使用“2016”,因为闰日发生在2月29日(导致4月的第一周比闰年晚一周)。@leroydev这是一个示例。您正在谈论的优化应该由您在代码中完成。@leroydev我已经更新了我的答案。此外,2016年是闰年。所以我想这个逻辑适用于所有情况。