請問工作流表單模板中的兩個不同日期之間可以自動進行相減運算獲取需要的間隔時間嗎?如何操作?
當(dāng)前位置:點晴教程→點晴OA辦公管理信息系統(tǒng)
→『 工作流使用交流 』
:請問工作流表單模板中的兩個不同日期控件之間可以進行相減運算獲取需要的間隔時間嗎?如何操作? 由于點晴OA工作流表單模板支持完整的Javascript腳本,所以表單模板中的兩個不同日期控件之間在理論上的確可以利用控件的onchange事件觸發(fā)Javascript腳本自動計算出相隔的時間,可以精確到天、小時、分鐘等。 但由于在實際的使用中,兩個日期控件之間存在著很多無法由OA系統(tǒng)自動確定的無效時間段,例如: 按小時計算的話,會將中午休息、晚上休息、周末休息等所有無效時間計算進去; 按天計算的話,會將周末、節(jié)假日、部分單位單雙周上班、部分單位周六上半天班等各類有效時間漏計算或無效時間計算進去。 所以為了精確獲得兩個不同日期控件之間的有效時間,由申請人人工計算得到的時間是最準(zhǔn)確的,審核人審核時、歸檔人歸檔時都還可以進行正確性確認(rèn)。 如果實在要用,設(shè)置方法如下: 在工作流模板設(shè)計頁面,勾選啟用JavaScript: 然后在表體JS腳本中輸入日期相隔時間函數(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è)置就可以實現(xiàn)自動計算兩個日期之間的間隔,并判斷超出指定天數(shù)就攔截不允許提交的效果。
該文章在 2020/2/4 10:22:03 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |