Date validation if date is 7 days from today
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-13-2025 06:23 AM
Hello mates,
Below is my requirement.
Create a catalog client script that runs when the ‘Is this due to be returned at a specific date?’ field is updated.
Generate an error if the Date is not 7 days from today
for this i have created a catalog client script script given below but its not working as expected, i am missing logic can anyone please help me.
var today = new Date();
today.setHours(0, 0, 0, 0);
// Calculate the valid date (7 days from today)
var validDate = new Date(today);
validDate.setDate(today.getDate() + 7);
// Get selected date
var selectedDate = new Date(newValue);
selectedDate.setHours(0, 0, 0, 0);
// Compare the dates directly (Date vs Date)
if (selectedDate.getTime() !== validDate.getTime()) {
g_form.showFieldMsg('is_this_due_to_be_returned_at_a_specific_date',
'Date must be exactly 7 days from today', 'error');
} else {
g_form.hideFieldMsg('is_this_due_to_be_returned_at_a_specific_date', true);
}
}
Date format is month/date/year in our instance
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-13-2025 06:30 AM
@Ankur Bawiskar @Dr Atul G- LNG thanks will try but my client said to use client script, ui policy is best fit than client script i am not sure why they asked for client script !
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-13-2025 06:55 AM
Hi @shaik23
If you check this link, you’ll notice that a UI Policy is 100% low-code/no-code, which means it’s easy to maintain and introduces no technical debt. So, suggest to the client that using a UI Policy would be the better approach in this case.
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.
Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/dratulgrover [ Connect for 1-1 Session]
****************************************************************************************************************
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-13-2025 07:51 AM
what's your business requirement?
date selected should be Exact 7 days from now?
try this
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || !newValue) {
return;
}
var dateMS = 7 * 24 * 60 * 60 * 1000; // 7 days
var selectedValue = g_form.getValue('is_this_due_to_be_returned_at_a_specific_date');
var todayDate = new Date();
todayDate.setTime(dateMS);
var selectedDt = new Date(getDateFromFormat(selectedValue, g_user_date_format));
if (selectedDate.getTime() !== todayDate.getTime()) {
g_form.showFieldMsg('is_this_due_to_be_returned_at_a_specific_date',
'Date must be exactly 7 days from today', 'error');
} else {
g_form.hideFieldMsg('is_this_due_to_be_returned_at_a_specific_date', true);
}
}
💡 If my response helped, please mark it as correct ✅ and close the thread 🔒— this helps future readers find the solution faster! 🙏
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-13-2025 06:56 PM
Hope you are doing good.
Did my reply answer your question?
💡 If my response helped, please mark it as correct ✅ and close the thread 🔒— this helps future readers find the solution faster! 🙏
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-13-2025 08:19 AM
HI @shaik23 ,
i have corrected few lines , can you please try below script -
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue === '') {
return;
}
// Parse selected date (MM/DD/YYYY)
var selectedDate = new Date(newValue);
selectedDate.setHours(0, 0, 0, 0);
// Today's date
var today = new Date();
today.setHours(0, 0, 0, 0);
// Calculate difference in days
var diffInMs = selectedDate.getTime() - today.getTime();
var diffInDays = diffInMs / (1000 * 60 * 60 * 24);
if (diffInDays !== 7) {
g_form.showFieldMsg('is_this_due_to_be_returned_at_a_specific_date',
'Date must be exactly 7 days from today', 'error');
} else {
g_form.hideFieldMsg('is_this_due_to_be_returned_at_a_specific_date', true);
}
}
Thanks,
Rithika.ch
