Populate duration difference of two date/time type variables

tsoct
Tera Guru

Hi everyone,
I attempted to populate the time difference in the duration field in the catalog item, but nothing came up. What might have gone incorrectly?

 

expected_duration (variable type = duration)
u_duration_from (variable type = date/time)
u_duration_to (variable type = date/time)

 

 

 

 

//Script include
getDuration: function() {
        var dateTimediff;
        var date1 = new GlideDateTime();
        var date2 = new GlideDateTime();

        var fromdate = this.getParameter('sysparm_from_date');
        var todate = this.getParameter('sysparm_to_date');

        date1.setValue(fromdate);
        date2.setValue(todate);

        dateTimediff = GlideDateTime.substract(date1, date2);
        return dateTimediff.getDurationValue();
    },


// Catalog client script:
function onChange(control, oldValue, newValue, isLoading) {
    var strt = g_form.getValue('u_duration_from'); 
    var end = g_form.getValue('u_duration_to'); 
    var ajax = new GlideAjax('THERequestUtilsAjax');
    ajax.addParam('sysparm_name', 'getDuration');
    ajax.addParam('sysparm_from_date', strt);
    ajax.addParam('sysparm_to_date', end);
    ajax.getXMLWait();
    var answer = ajax.getAnswer();
	alert('Duration: '+answer); //this return null
    g_form.setValue('expected_duration', answer);
}

 

 

 

8 REPLIES 8

Jaspal Singh
Mega Patron
Mega Patron

Hi,

Can you replace

dateTimediff = GlideDateTime.substract(date1, date2);

with

dateTimediff = GlideDateTime.subtract(date1, date2);

 

Thanks but i am still getting null on the alert. Also, an error msg when form load

tsoct_0-1700238953737.png

 

Vasu ch
Kilo Sage

Hi @tsoct 

In script include, can you try like below:

return dateTimediff.getDisplayValue();

 

Regards,

Vasu Ch

hello Vasu, 

Same where it return null