NINTEX表格 - Javascript:在转发器内的两个日期之间获得工作日

时间:2016-09-16 09:23:12

标签: javascript sharepoint

我创建了自己的javascript代码以获得Nintex表格中两个日期之间的工作日 我有两个带有cssclass名称的日期选择器: DateFromStr DateToStr
带有客户ID javascript名称 jsText 的单行文本。
之所以我为我的datepicker设置一个cssclass名称是因为实际上DateFromStr和DateToStr实际上并不是一个日期选择器。
我的日期选择器自动返回格式为dd / MM / yyyy的日期,当我尝试计算时它会打扰,所以我将datepicker中的值传递给CalculatedValue为MM / dd / yyyy格式。

下面的代码工作正常,但是当我尝试将所有控件放在转发器中时,它不起作用 我想调用转发器名称是最好的方法,我试过但它不起作用。我需要你的建议。非常感谢你。

function calculate()
{
 var dateFrom=new Date();var dateTo=new Date();

 var jsFrom=NWF$('.DateFromStr').find('input');
 var jsTo=NWF$('.DateToStr').find('input');

 dateFrom=new Date(jsFrom.val());
 dateTo=new Date(jsTo.val());

 var iWeeks, iDateDiff, iAdjust = 0;

 var iWeekday1=dateFrom.getDay();
 var iWeekday2=dateTo.getDay();

 iWeekday1 = (iWeekday1 == 0) ? 7 : iWeekday1;
 iWeekday2 = (iWeekday2 == 0) ? 7 : iWeekday2;

 if ((iWeekday1 > 5) && (iWeekday2 > 5))
 {iAdjust = 1;} 
 iWeekday1 = (iWeekday1 > 5) ? 5 : iWeekday1;
 iWeekday2 = (iWeekday2 > 5) ? 5 : iWeekday2;

 iWeeks = Math.floor((dateTo.getTime() - dateFrom.getTime()) / 604800000) ;

 if (iWeekday1 <= iWeekday2)
 {iDateDiff = (iWeeks * 5) + (iWeekday2 - iWeekday1);}
 else
 {iDateDiff = ((iWeeks + 1) * 5) - (iWeekday1 - iWeekday2);}
 iDateDiff -= iAdjust;

 var result=iDateDiff+1;

 var txt=NWF$("#"+jsText);
 txt.val(result);


}

0 个答案:

没有答案