Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Help to calculate the difference between two fields in minutes

Thrupthi
Tera Expert

I have a two fields on my table which are of date/time type; I have start date and end date, inorder to calculate the difference i have created a new field of type duration

Business rule is been for this it returns a value in "days:hours:minutes"seconds"

Instead i just want the field to calculate the value in minutes; can someone please help me with this

Business rule:

(function executeRule(current, previous /*null when async*/) {

if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
current.setValue('u_incident_duration_calculation', '');
return;
}

var st = new GlideDateTime();


st.setValue(current.getValue("u_incident_start_date"));

var ed = new GlideDateTime();
ed.setValue(current.getValue("u_incident_end"));

var dur = GlideDateTime.subtract(st, ed);
current.setValue("u_incident_duration_calculation", dur.getValue());

})(current, previous);




1 ACCEPTED SOLUTION

That could be the issue. If you donot want decimals , try the updated code

(function executeRule(current, previous /*null when async*/) {
	
	if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
		current.setValue('u_incident_duration_calculation', '');
		return;
	}
	
	var st = new GlideDateTime(current.u_incident_start_date);
	var ed = new GlideDateTime(current.u_incident_end);
	
	var sec = gs.dateDiff(st, ed, true);
	
	var minutes = sec/60;
	
	current.u_incident_duration_calculation = parseInt(minutes,10); // Remove decimals 

	
})(current, previous);

View solution in original post

15 REPLIES 15

I tried that already, it dint work with client and server script

dvp
Mega Sage

Try this

(function executeRule(current, previous /*null when async*/) {
	
	if (current.u_incident_start_date.nil() || current.u_incident_end.nil()) {
		current.setValue('u_incident_duration_calculation', '');
		return;
	}
	
	var st = new GlideDateTime(current.u_incident_start_date);
	var ed = new GlideDateTime(current.u_incident_end);
	
	var sec = gs.dateDiff(st, ed, true);
	
	var minutes = sec/60;
	
})(current, previous);

Hi Dvp

 

i tried this script but it dint work, is it because the field "u_incident_duration_calculation" is of integer type? 

upon selection of dates it just displays blank nothing worked