- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a week ago
Hi Community,
On the Catalog form I have field start & end date.
Based on the start date need to get the day
And also based on the start date, need to get the next 3months & 6months & 12months date
Can anyone help me with this
Thanks,
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a week ago - last edited a week ago
try this and it will take care of any date/time format
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
// Parse string to milliseconds
var dateMS = getDateFromFormat(newValue, g_user_date_time_format);
var newDT = new Date();
newDT.setTime(dateMS);
// Example: Add 3 months
newDT.setMonth(newDT.getMonth() + 3);
// If you want 6 or 12 months, just change the +3:
// newDT.setMonth(newDT.getMonth() + 6); // For 6 months
// newDT.setMonth(newDT.getMonth() + 12); // For 12 months
var val = formatDate(newDT, g_user_date_time_format);
alert(val);
}
Output:I added 3 months, enhance further
💡 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
a week ago
are you sure the above script will work fine in client script?
Could you please share a working example?
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a week ago - last edited a week ago
Hi there @is_12 , Here is the script it should work for all date and time formats regardless of any region.
Script -
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var gdt = new GlideDateTime();
gdt.setDisplayValue(newValue);
var dayOfWeek = getDayName(gdt);
var date3 = new GlideDateTime(gdt);
date3.addMonthsLocalTime(3);
var date6 = new GlideDateTime(gdt);
date6.addMonthsLocalTime(6);
var date12 = new GlideDateTime(gdt);
date12.addMonthsLocalTime(12);
g_form.setValue('day_of_week', dayOfWeek);
g_form.setValue('next_3_months', date3.getDisplayValue());
g_form.setValue('next_6_months', date6.getDisplayValue());
g_form.setValue('next_12_months', date12.getDisplayValue());
}
function getDayName(gdt) {
var jsDate = new Date(gdt.getNumericValue());
var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
return days[jsDate.getDay()];
}
If this answer helps you in any way make sure to Mark this as accepted solution and give a thumbs up this will also benefit others as well.
Regards.
Saurabh V.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a week ago - last edited a week ago
try this and it will take care of any date/time format
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
// Parse string to milliseconds
var dateMS = getDateFromFormat(newValue, g_user_date_time_format);
var newDT = new Date();
newDT.setTime(dateMS);
// Example: Add 3 months
newDT.setMonth(newDT.getMonth() + 3);
// If you want 6 or 12 months, just change the +3:
// newDT.setMonth(newDT.getMonth() + 6); // For 6 months
// newDT.setMonth(newDT.getMonth() + 12); // For 12 months
var val = formatDate(newDT, g_user_date_time_format);
alert(val);
}
Output:I added 3 months, enhance further
💡 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
a week ago
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
a week ago
@Ankur Bawiskar, Thanks for your solution,
There is a small change instead of start date + 3months, based on selected "start date" we have day of month that is nothing but date based on that it should be +3 or +6
Below is the reference
Tried with this below script
Client script
}
script include
