- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-10-2022 06:15 AM
I am having two fields start date and end date in my form and am trying to check whether the end date is less than start date, if yes it should throw and error. The script that i wrote is working in native view, but not in agent workspace.
Can someone help me out
var start_date = g_form.getValue("u_outage_start_date");
var end_date = g_form.getValue("u_outage_end_date");
var format = g_user_date_time_format;
var isEndBeforeStart = compareDates(start_date, format, end_date, format);
if (isEndBeforeStart){
g_form.clearValue("u_outage_end_date");
g_form.showFieldMsg("u_outage_end_date", "Outage End Date should be after Outage Start Date", "error");
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-10-2022 08:27 AM
Hi,
g_user_date_time_format seems not allowed in workspace
you can use GlideAjax
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-10-2022 08:27 AM
Hi,
g_user_date_time_format seems not allowed in workspace
you can use GlideAjax
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-10-2022 08:36 AM
Hi Ankur,
I tried with script include,but i guess,since am working in scoped application datediff is not working. Is there any alternative to use here.
script include
getDateDiff: function() {
var date_1 = this.getParameter('date_1');
var date_2 = this.getParameter('date_2');
return gs.dateDiff(date_1, date_2, true);
},
Client script
var fromDate = g_form.getValue('u_outage_start_date'),
toDate = g_form.getValue('u_outage_end_date');
var ga = new GlideAjax('Date_check');
ga.addParam('sysparm_name', 'getDateDiff');
ga.addParam('date_1', fromDate);
ga.addParam('date_2', toDate);
ga.getXML(validateDates);
}
function validateDates(response) {
var difference = response.responseXML.documentElement.getAttribute("answer");
if (difference < 0) {
g_form.addErrorMessage(getMessage("Outage End Date should be after Outage Start Date"));
g_form.clearValue('u_outage_end_date');
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-10-2022 12:30 PM
Hello,
Please try below code, this is the alternative:
var t = new GlideDateTime();
var f = new GlideDateTime('2019-04-08 16:43:33');
var dur = GlideDateTime.subtract(t, f);
var duration = dur.getNumericValue();
var durationSeconds = (duration/1000);
gs.info(t);
gs.info(dur.getDisplayValue());
gs.info(durationSeconds );
ALso please check this article:
https://community.servicenow.com/community?id=community_blog&sys_id=72b0f06adb3d33801cd8a345ca96194d
Please let me know if this solves your query.
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-10-2022 10:05 PM
Hi,
you just want to check if end is more than start then no need of difference
getDateDiff: function() {
var date_1 = new GlideDateTime(this.getParameter('date_1'));
var date_2 = new GlideDateTime(this.getParameter('date_2'));
if(date_1.getNumericValue() < date_2.getNumericValue())
return 'error';
else
return '';
}
client script
var fromDate = g_form.getValue('u_outage_start_date'),
toDate = g_form.getValue('u_outage_end_date');
var ga = new GlideAjax('Date_check');
ga.addParam('sysparm_name', 'getDateDiff');
ga.addParam('date_1', fromDate);
ga.addParam('date_2', toDate);
ga.getXML(validateDates);
}
function validateDates(response) {
var difference = response.responseXML.documentElement.getAttribute("answer");
if (difference == 'error') {
g_form.addErrorMessage(getMessage("Outage End Date should be after Outage Start Date"));
g_form.clearValue('u_outage_end_date');
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-14-2022 04:20 PM
Hello Ankur,
I found your code very useful. But if I subtract the Numeric values of date_1 and date_2, how would i convert that difference to days?
Thanks in advance.
Regards,
Sarah