Difference between 2 dates in days in catalog client script

soumyadaggula
Tera Contributor

Hi team , 

 

I am trying to get the difference of 2 dates in days , I tried below script , but its not working :

 

Catalog Client Scripts

 

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var answer;

var ga=new GlideAjax('NofDays');

ga.addParam('sysparm_name','days');

ga.addParam('sysparm_start',g_form.getValue('u_date'));

ga.addParam('sysparm_end',g_form.getValue('audit_last_test'));

ga.getXMLWait();

answer=ga.getAnswer();

g_form.setValue('audit_required_timeframe',answer);
}

 

Script Include :

 

var NofDays = Class.create();


NofDays.prototype = Object.extendsObject(AbstractAjaxProcessor, {


days:function(){


var start=this.getParameter('sysparm_start');


var end=this.getParameter('sysparm_end');


return gs.dateDiff(start,end);

 

},


type: 'NofDays'


});

1 ACCEPTED SOLUTION

Mohith Devatte
Tera Sage
Tera Sage

Hello @soumyadaggula ,

can  you try this in script include ?

 

var NofDays = Class.create();


NofDays.prototype = Object.extendsObject(AbstractAjaxProcessor, {


days:function(){




var start = new GlideDateTime(this.getParameter('sysparm_start'));
  var end = new GlideDateTime(this.getParameter('sysparm_end'));
  var diff = GlideDateTime.subtract(start, end);
  var days = diff.getRoundedDayPart();
return days;

 

},


type: 'NofDays'


});

 

Hope this helps 

Mark my answer correct if this helps you 

Thanks

View solution in original post

8 REPLIES 8

Kalyani Jangam1
Mega Sage
Mega Sage

Hi @soumyadaggula 

there is no issue found on your script but there is one suggestion, rather than use getXMLWait please try with getxml like below

ga.getXML(callback);
function callback(response) {
  var comments = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue("comments", comments); //Set the "Comments" field with comments in the dialog
  }

 Please try and let me know if it helpful or not.

I get this after I update :

 

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var answer;

var ga=new GlideAjax('NofDays');

ga.addParam('sysparm_name','days');

ga.addParam('sysparm_start',g_form.getValue('u_date'));

ga.addParam('sysparm_end',g_form.getValue('audit_last_test'));

ga.getXML(callback);
function callback(response) {
var comments = response.responseXML.documentElement.getAttribute("answer");
g_form.setValue("audit_required_timeframe", comments); //Set the "Comments" field with comments in the dialog
}
}

 

soumyadaggula_0-1669637693925.png

 

yes gs.dateDiff set value in this format. What kind of value you expect???

in number , Difference between 2 dates in days