How to set Calculated Value for Duration (or any other date/time) field

Valon Sheremeti
Kilo Guru

Hi,

I am unsuccessfully trying to dynamically set/calculate 'duration' field value based on difference between opened_at and closed_at fields   in an scoped application.

I tried using script below for 'calculated value' but no luck.

Thanks in advance.

(function calculatedFieldValue(current) {

var startDate = current.opened_at;  

var endDate = current.closed_at;  

var duration = GlideDateTime.subtract(startDate, endDate);

return duration;

})(current);

I tried also:

return GlideDateTime.substract(opened_at,closed_at);

but no luck - -my calculated field show <empty> value.

Thank you.

1 ACCEPTED SOLUTION

Can we try something like this


(function calculatedFieldValue(current) {

var startDate = new GlideDateTime(current.opened_at);


var endDate = new GlideDateTime(current.closed_at);


var duration = GlideDateTime.subtract(startDate, endDate);  


return duration.getDisplayValue();


})(current);



Please mark my response as correct and helpful if it helped solved your question.
-Thanks

View solution in original post

20 REPLIES 20

I updated the script removing time like GlideDate but same errors.


Hello Prateek,

Can you please help me with this

https://community.servicenow.com/community?id=community_question&sys_id=bf8b249cdb4f9b04e0e80b55ca9619c6

This works with two date fields, but we want to calculate the number of days before go live.

Go Live date - Today's date

The below script is not working.  Please assist

 

(function calculatedFieldValue(current) {
var gdt = new GlideDateTime();
var goLive = new GlideDateTime(current.u_golive_date.getDisplayValue());
var duration = GlideDateTime.subtract(goLive,gdt);

return duration;
// return the calculated value
})(current);

Try below:

 (function calculatedFieldValue(current) {
var gdt = new GlideDateTime();
var goLive = new GlideDateTime(current.u_golive_date);
var duration = GlideDateTime.subtract(goLive,gdt);

return duration.getDisplayValue();
// return the calculated value
})(current);


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

It just keeps showing find_real_file.png