Validate date field with business days
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-18-2019 11:19 AM
Hi All,
I have a DATE field and I need to validate it such that it difference between the current date and entered date is 4 BUSINESS days.
Eg. if today is 21st August, earliest selectable date should be 28th August. Any value entered before 28 should not be accepted.
I tried to script few things through client script but 4 biz days is not working. Any leads would be appreciated.
Thank you in advance.
-Ruchi
- Labels:
-
Multiple Versions

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-22-2019 01:04 AM
Below Script might help you : Make the changes as per you need :
This script checks to see if the 'date_required' (i.e. NewValue) is >= 2 days in the future and not on a weekend.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
//get the new and current date/time as an object
var dateObjectNow = new Date();
var dateObjectNew = new Date(newValue);
//get the dates in days - also use floor to convert valeus to integers
var dateNow = Math.floor(dateObjectNow.valueOf()/(1000*60*60*24));
var dateNew = Math.floor(dateObjectNew.valueOf()/(1000*60*60*24));
// Get day of week (Sunday = 0)
var dayOfWeek = dateObjectNew.getDay();
// Check Date if date is 2 or more days in the future and not on the weekend.
// dateNow is the Date/Time now, whereas dateNew is the date at midnight
// so dateNew currently equals dateNow -1. So use 2 in the check below (not 2).
var msg;
if (dateNew >= (dateNow + 2) && dayOfWeek > 0 && dayOfWeek < 6) {
msg = 'Date is OK';
g_form.hideFieldMsg('date_required',true);
g_form.showFieldMsg('date_required',msg,'info',false);
}
else {
msg = 'ERROR: Date must be 2 or more days in the future and not on the weekend.';
g_form.hideFieldMsg('date_required',true);
g_form.showFieldMsg('date_required',msg,'error',false);
}
}
Regards,
Sanket