Javascript 计算两天之间的工作日
我知道这个问题被问了很多次。我做了研究,但我真的不明白。我刚开始使用javascript 这是我用来计算两个输入之间的天数的代码。。我抹去了周末计算的尝试Javascript 计算两天之间的工作日,javascript,php,date,Javascript,Php,Date,我知道这个问题被问了很多次。我做了研究,但我真的不明白。我刚开始使用javascript 这是我用来计算两个输入之间的天数的代码。。我抹去了周末计算的尝试 function GetDays(){ var datefrom = new Date(document.getElementById("datefrom").value); var dateto = new Date(document.getElementById("dateto").value);
function GetDays(){
var datefrom = new Date(document.getElementById("datefrom").value);
var dateto = new Date(document.getElementById("dateto").value);
return parseInt((dateto - datefrom) / (1000 * 60 * 60 * 24));
}
function cal(){
if(document.getElementById("dateto")){
document.getElementById("numdays2").innerHTML=GetDays();
}
}
PHP的答案对我来说也很好。
希望有人能帮助我。你真的应该用参数来创建你的函数,这样函数就可以不知道输入/输出的细节,而不必参考
文档
此外,函数名通常以小写字母开头,除非它是构造函数(这里不是这种情况)
至于算法:将两个给定日期移到它们之前的星期日(除非它们已经是星期日)。由于getDay()
对于星期天返回0,您只需从日期中减去getDay()
天数,它将是星期天。还记得你那样减去多少工作日吗
然后,当两个日期都是星期日时,计算它们之间的周数并乘以5(工作日)
最后,通过加上或减去更改日期的天数来调整此数字,使其与星期日对齐
以下是一个互动片段:
函数getDays(datefrom,dateto){
datefrom=新日期(datefrom);
dateto=新日期(dateto);
let before=datefrom.getDay();
datefrom.setDate(datefrom.getDate()-before);//转到上一个星期日
if(before)before--;//应该在{0,1,2,3,4,5}中
let after=dateto.getDay();
dateto.setDate(dateto.getDate()-after);//转到上一个星期日
if(after==6)after--;//应该在{0,1,2,3,4,5}中
//将每7天的差异计算为5天,并补偿周日的变化:
返回Math.round((dateto-datefrom)/(1000*60*60*24))/7*5+后-前
}
document.addEventListener(“输入”,函数(){
var datefrom=新日期(document.getElementById(“datefrom”).value);
var dateto=新日期(document.getElementById(“dateto”).value);
document.getElementById(“numdays2”).textContent=getDays(datefrom,dateto);
});代码>
发件人:
致:
工作天数:1
计算周末是什么意思?算完整的周末?计算被视为周末的天数(周六和周日)?完全其他的东西?我只需要计算工作日是dateto被包括(当它是一个工作日时),还是被排除?dateto必须被包括。你知道你的代码目前做什么吗?谢谢。注意,我在--
之后用对行进行了最后一秒的调整。一定要弄明白;-)