請(qǐng)問工作流表單模板中的兩個(gè)不同日期之間可以自動(dòng)進(jìn)行相減運(yùn)算獲取需要的間隔時(shí)間嗎?如何操作?
當(dāng)前位置:點(diǎn)晴教程→點(diǎn)晴OA辦公管理信息系統(tǒng)
→『 工作流使用交流 』
:請(qǐng)問工作流表單模板中的兩個(gè)不同日期控件之間可以進(jìn)行相減運(yùn)算獲取需要的間隔時(shí)間嗎?如何操作? 由于點(diǎn)晴OA工作流表單模板支持完整的Javascript腳本,所以表單模板中的兩個(gè)不同日期控件之間在理論上的確可以利用控件的onchange事件觸發(fā)Javascript腳本自動(dòng)計(jì)算出相隔的時(shí)間,可以精確到天、小時(shí)、分鐘等。 但由于在實(shí)際的使用中,兩個(gè)日期控件之間存在著很多無法由OA系統(tǒng)自動(dòng)確定的無效時(shí)間段,例如: 按小時(shí)計(jì)算的話,會(huì)將中午休息、晚上休息、周末休息等所有無效時(shí)間計(jì)算進(jìn)去; 按天計(jì)算的話,會(huì)將周末、節(jié)假日、部分單位單雙周上班、部分單位周六上半天班等各類有效時(shí)間漏計(jì)算或無效時(shí)間計(jì)算進(jìn)去。 所以為了精確獲得兩個(gè)不同日期控件之間的有效時(shí)間,由申請(qǐng)人人工計(jì)算得到的時(shí)間是最準(zhǔn)確的,審核人審核時(shí)、歸檔人歸檔時(shí)都還可以進(jìn)行正確性確認(rèn)。 如果實(shí)在要用,設(shè)置方法如下: 在工作流模板設(shè)計(jì)頁面,勾選啟用JavaScript: 然后在表體JS腳本中輸入日期相隔時(shí)間函數(shù): function DateDiff(interval,date1,date2){ var d1=new Date(date1.replace(/-/g, "/")); var d2=new Date(date2.replace(/-/g, "/")); var long = d2.getTime() - d1.getTime(); //相差毫秒 switch(interval.toLowerCase()){ case "y": return parseInt(date2.getFullYear() - date1.getFullYear()); case "m": return parseInt((date2.getFullYear() - date1.getFullYear())*12 + (date2.getMonth()-date1.getMonth())); case "d": return parseInt(long/1000/60/60/24); case "w": return parseInt(long/1000/60/60/24/7); case "h": return parseInt(long/1000/60/60); case "n": return parseInt(long/1000/60); case "s": return parseInt(long/1000); case "l": return parseInt(long); } } 在提交前腳本中輸入賦值和判斷JS腳本: document.getElementById('CS09').value=DateDiff('d',document.getElementById('CS02').value,document.getElementById('CS07').value); if (document.getElementById('CS09').value-2>0){ alert('開始日期和結(jié)束日期間隔不允許超過2天!'); return false; } 上面CS09、CS02、CS07分別是相應(yīng)控件的ID。 效果圖: 以上設(shè)置就可以實(shí)現(xiàn)自動(dòng)計(jì)算兩個(gè)日期之間的間隔,并判斷超出指定天數(shù)就攔截不允許提交的效果。
該文章在 2020/2/4 10:22:03 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |