Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算两天之间的工作日_Javascript_Php_Date - Fatal编程技术网

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);

我知道这个问题被问了很多次。我做了研究,但我真的不明白。我刚开始使用javascript

这是我用来计算两个输入之间的天数的代码。。我抹去了周末计算的尝试

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必须被包括。你知道你的代码目前做什么吗?谢谢。注意,我在--
之后用
对行进行了最后一秒的调整。一定要弄明白;-)