javascript - 为什么当我选择超过 10 天时条件不起作用?
问题描述
这是我的代码,我正在尝试制作一个日期选择器来选择没有星期六和星期五选择的天数,它工作正常但是当我选择一个以上的周末(2 个星期五或 2 个星期六)并且最后一天是周末时它会逃脱最后一个周末,如果第 30 天是星期六,我从第 1 天到第 30 天选择它给我 23,但是如果我选择 1 到 28,它给我 22。
var date = new Date();
var tomorrow = new Date();
tomorrow.setDate(date.getDate() + 1);
$('#picker').daterangepicker({
"linkedCalendars": true,
"showCustomRangeLabel": false,
"startDate": date.getDate(),
"endDate": tomorrow,
"cancelClass": "btn-danger",
"minDate": date.getDate(),
"opens": "center",
"autoApply": true
}, function(start, end) {
function parseDate(str) {
var mdy = str.split('-');
var x = new Date("'" + mdy[0] + "-" + mdy[1] + "-" + mdy[2]);
return x;
}
var between = [];
function datediff(first, second) {
var currentDate = new Date(first);
between = [];
while (currentDate <= second) {
between.push("'" + currentDate.getFullYear() + "-" + (currentDate.getMonth() + 1) + "-" + currentDate.getDate() + "'");
currentDate.setDate(currentDate.getDate() + 1);
}
//return Math.round((second-first)/(1000*60*60*24))+1;
}
datediff(parseDate(start.format('YYYY-MM-DD')), parseDate(end.format('YYYY-MM-DD')));
var s = "",
n = "",
fri = "",
sat = "",
i;
var number = between.length;
function getweekend() {
for (i = 0; i <= number + 1; i++) {
s = new Date(between[i]);
n = s.getDay();
fri = (n === 5);
sat = (n === 6);
if (fri) {
console.log("fri");
number = number - 1;
continue;
} else if (sat) {
console.log("sat");
number = number - 1;
continue;
} else {
console.log(n);
continue;
}
}
console.log("after minus:" + number);
}
console.log("plus minus:" + number);
getweekend();
});
解决方案
推荐阅读
- android - 网络浏览器中的亚马逊支付不会重定向到我的应用程序
- mongodb - 如何获取 MongoDB 的所有集合?
- datetime - 小时日期时间格式的日期差异 - Mulesoft
- javascript - js切换检查/取消检查而不触发事件
- python - 如何检查 python 脚本是否仍在从另一个 python 脚本运行
- simulation - 执行模拟后如何从最小二乘估计方法中找到估计值和偏差
- python - ModelForm PasswordInput 的 Django 密码格式无效
- javascript - 使用 Codecept 和 Puppeteer 测试一个带有 role="combobox" 的 div
- postgresql - 如何在ansible中迭代环境变量?
- php - 如何确保消息不会发送到数据库中数据不存在的电话号码?