Javascript 如何使用momentjs向变量添加一天
嗨,我想解决这个问题,但我做不到, 我想计算一个月的天数,没有周日和周六 这是我的密码Javascript 如何使用momentjs向变量添加一天,javascript,vue.js,momentjs,Javascript,Vue.js,Momentjs,嗨,我想解决这个问题,但我做不到, 我想计算一个月的天数,没有周日和周六 这是我的密码 startOfMonth = moment().clone().startOf('month').format('YYYY-MM-DD'); endOfMonth = moment().clone().endOf('month').format('YYYY-MM-DD'); calculate(startOfMonth, endOfMonth); calc
startOfMonth = moment().clone().startOf('month').format('YYYY-MM-DD');
endOfMonth = moment().clone().endOf('month').format('YYYY-MM-DD');
calculate(startOfMonth, endOfMonth);
calculate(start,end){
var numWorkDays = 0;
var currentDate = start;
console.log(currentDate, end)
while (currentDate <= end) {
if (currentDate !== 1 && currentDate !== 7) {
numWorkDays++;
}
currentDate = moment(currentDate).add(1, 'd').format("YYYY-MM-DD");
console.log(currentDate = moment(currentDate).add(1, 'd').format("YYYY-MM-DD"))
}
console.log(numWorkDays)
},
startOfMonth=moment().clone().startOf('month').format('YYYY-MM-DD');
endOfMonth=moment().clone().endOf('month').format('YYYY-MM-DD');
计算(开始月、结束月);
计算(开始、结束){
var numWorkDays=0;
var currentDate=开始;
console.log(当前日期,结束)
而(currentDate您正在以正确的方式添加天数
问题来自于带有控制台.log
的行,其中再次添加一天。只需删除或注释此行:
//console.log(currentDate = moment(currentDate).add(1, 'd').format("YYYY-MM-DD"))
现在,您的代码中还有一些其他错误,这就是为什么您没有得到预期的结果:
- 星期日和星期六的数字是
0
和6
,而不是1
和7
- 在您的代码中,
currentDate
是一个字符串。因此,您正在比较,例如,“2021-02-01”
与1
和7
。要获取其编号,您必须从该字符串创建一个日期对象,然后调用day()
最后的代码应该是这样的:
startOfMonth = moment().clone().startOf('month').format('YYYY-MM-DD');
endOfMonth = moment().clone().endOf('month').format('YYYY-MM-DD');
function calculate(start,end){
var numWorkDays = 0;
var currentDate = start;
while (currentDate <= end) {
var currentDateAsNumber = moment(currentDate).day();
var dayName = moment(currentDate).format('dddd');
if (currentDateAsNumber !== 0 && currentDateAsNumber !== 6) {
numWorkDays++;
}
currentDate = moment(currentDate).add(1, 'd').format("YYYY-MM-DD");
//console.log(currentDate = moment(currentDate).add(1, 'd').format("YYYY-MM-DD"))
}
console.log(numWorkDays)
}
calculate(startOfMonth, endOfMonth);
startOfMonth=moment().clone().startOf('month').format('YYYY-MM-DD');
endOfMonth=moment().clone().endOf('month').format('YYYY-MM-DD');
函数计算(开始、结束){
var numWorkDays=0;
var currentDate=开始;
while(当前日期)