Javascript 选中复选框后计算两个日期之间的天数

Javascript 选中复选框后计算两个日期之间的天数,javascript,Javascript,我使用下面的代码,如果选中cb1,它将计算总天数 如果未选中cb1(默认状态),则周末将被排除 我的第一个问题是,一旦选中cb1,它将在计算中显示少一天,第二个问题是,当cb1未选中时,它不会显示任何结果 请帮忙。我引用了他的参考资料 (函数(){ if(getField(“cb1”).value!=“Off”){ var Start=this.getField(“LeaveFrom”).value; var End=这个.getField(“LeaveEnd”).value; var dSta

我使用下面的代码,如果选中
cb1
,它将计算总天数

如果未选中
cb1
(默认状态),则周末将被排除

我的第一个问题是,一旦选中
cb1
,它将在计算中显示少一天,第二个问题是,当
cb1
未选中时,它不会显示任何结果

请帮忙。我引用了他的参考资料

(函数(){
if(getField(“cb1”).value!=“Off”){
var Start=this.getField(“LeaveFrom”).value;
var End=这个.getField(“LeaveEnd”).value;
var dStart=util.scand(“dd/mm/yyyy H:mm:SS”,Start+“0:00:00”);
var dEnd=util.scand(“dd/mm/yyyy H:mm:SS”,End+“0:00:00”);
var diff=dEnd.getTime()-dStart.getTime();
var One Day=24*60*60*1000;
变量天数=数学下限(差异/一天);
event.value=天;
}否则{
var start=this.getField(“LeaveFrom”).value;//获取开始日期值
var end=this.getField(“LeaveEnd”).value;//获取结束日期值
var start=util.scand(“dd/mm/yyyy H:mm:SS”,start+“0:00:00”);
var end=util.scand(“dd/mm/yyyy H:mm:SS”,end+“0:00:00”);
event.value=日期差(开始、结束);
函数日期差(开始、结束){
如果(结束<开始)返回-1;
//复制日期对象,以便不修改原件
var s=新日期(+开始);
var e=新日期(+结束);
//在一整天中获得差异
var totalDays=数学四舍五入((e-s)/8.64e7);
//在整周内获得差异
var wholeWeeks=总天数/7 | 0;
//估计工作日为整周数*5
变量天数=整周*5;
//如果不是偶数周,则计算剩余周末天数
如果(总天数%7){
s、 setDate(s.getDate()+整周*7);
而(s
dd/mm/yyyy
格式的
var Start
var End
吗?是。dd/mm/yyyy格式删除
+
<代码>var s=新日期(开始)已删除+。已用var s=新日期(开始);但是没有任何变化传递到
日期差异中的
开始
结束
的值是什么?
(function () {
     if (getField("cb1").value != "Off") {
         var Start = this.getField("LeaveFrom").value;
         var End = this.getField("LeaveEnd").value;
         var dStart = util.scand("dd/mm/yyyy H:MM:SS", Start + " 0:00:00");
         var dEnd = util.scand("dd/mm/yyyy H:MM:SS", End + " 0:00:00");
         var diff = dEnd.getTime() - dStart.getTime();
         var oneDay = 24 * 60 * 60 * 1000;
         var days = Math.floor(diff/oneDay);
         event.value = days;
     } else {
         var start = this.getField("LeaveFrom").value; // get the start date value
         var end = this.getField("LeaveEnd").value; // get the end date value
         var start =util.scand("dd/mm/yyyy H:MM:SS", start + " 0:00:00");
         var end = util.scand("dd/mm/yyyy H:MM:SS", end + " 0:00:00");

         event.value = dateDifference(start, end);

         function dateDifference(start, end) {
             if (end < start) return -1;
             // Copy date objects so don't modify originals
             var s = new Date(+start);
             var e = new Date(+end);

             // Get the difference in whole days
             var totalDays = Math.round((e - s) / 8.64e7);
             // Get the difference in whole weeks
             var wholeWeeks = totalDays / 7 | 0;
             // Estimate business days as number of whole weeks * 5
             var days = wholeWeeks * 5;
             // If not even number of weeks, calc remaining weekend days
             if (totalDays % 7) {
                 s.setDate(s.getDate() + wholeWeeks * 7);
                 while (s < e) {
                     s.setDate(s.getDate() + 1);
                     // If day isn't a Friday or Saturday, add to business days
                     if (s.getDay() != 5 && s.getDay() != 6) {
                         ++days;
                     }
                 }
             }
             return days;
         }
     }
})();