Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-22-2020 08:58 AM
Below worked for me:
1) If start date is 22nd July then adding 6months to that is 22nd Jan
2) Now it depends on how 6 months you consider since some months are having 30 and 31 days.
3) I would request to check with business for exact days and that would be better.
a) So if user gives 23rd Jan then it gives alert and clears as it is not valid
b) If user gives 22nd Jan then it is ok
Client Script:
Note: Ensure you give valid variable names for start and end dates
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('DateTimeAjax');
ga.addParam('sysparm_name', "compareDates");
ga.addParam('sysparm_start', g_form.getValue('start_date')); // start variable
ga.addParam('sysparm_end', g_form.getValue('end_date')); // end variable
ga.getXMLAnswer(function(answer){
if(answer != ''){
alert('End date should be within 6 months from start date');
g_form.clearValue('end');
}
});
//Type appropriate comment here, and begin script below
}
Script Include: It should be client callable
var DateTimeAjax = Class.create();
DateTimeAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
compareDates: function(){
var start = new GlideDateTime(this.getParameter('sysparm_start'));
var end = new GlideDateTime(this.getParameter('sysparm_end'));
start.addMonthsUTC(6);
if(end.getNumericValue() > start.getNumericValue()){
return 'End Date should be withing 6 months from start';
}
return '';
},
type: 'DateTimeAjax'
});
Output:
Regards
Ankur
Regards,
Ankur
✨ Certified Technical Architect || ✨ 10x ServiceNow MVP || ✨ ServiceNow Community Leader
Ankur
✨ Certified Technical Architect || ✨ 10x ServiceNow MVP || ✨ ServiceNow Community Leader