- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-14-2020 04:04 AM
Hi all,
How to get difference between two dates(Start date and End date) in the scoped application?
i have tried this code, but dint work out,
var v1 = new GlideRecord('x_252275_video_video_table');
v1.query();
while(v1.next()){
var g1 = new GlideDateTime('start_date');
var g2 = new GlideDateTime('end_date');
var sub = new GlideDateTime.subtract(g1,g2);
gs.info('Testing'+' '+sub);
}
Output returns in this format:1970:11:21 8:00:54:06
But Output should be in this format: 1 year 11 months 12 days
Thanks in Advance
Any help is appreciated.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-14-2020 10:18 PM
Hi,
Please check if this works for you.
function convertDaysToYearsMonthsDays (diff) {
var str = '';
var values = [[' year', 365], [' month', 30], [' day', 1]];
for (var i=0;i<values.length;i++) {
var amount = Math.floor(diff / values[i][1]);
if (amount >= 1) {
str += amount + values[i][0] + (amount > 1 ? 's' : '') + ' ';
diff -= amount * values[i][1];
}
}
return str;
}
var dur = new GlideDuration();
dur.setValue('2018-03-01 07:30:00');
var duration2 = new GlideDuration();
duration2.setValue('2020-06-10 10:35:00');
var answer = duration2.subtract(dur);
gs.info(answer.getDisplayValue());
// get the day part
var gd = new GlideDuration(answer);
gs.info(convertDaysToYearsMonthsDays(gd.getDayPart()));
The function convertDaysToYearsMonthsDays - is taken from internet.
Thanks

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-14-2020 04:24 AM
Hi,
add getDisplayValue() to the end of your sub variable.
gs.info('Testing ' + sub.getDisplayValue());
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-14-2020 05:32 AM
Hi Kieran
Tried with this but dint work out,
gs.info('Testing ' + sub.getDisplayValue());
Actually, the output should be 1 year 14 months 1190 days.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-14-2020 04:30 AM
Hi Ramaya,
try using below code,
var v1 = new GlideRecord('x_252275_video_video_table');
v1.query();
while(v1.next()){
var g1 = new GlideDate('start_date');
var g2 = new GlideDate('end_date');
var sub = new GlideDate.subtract(g1,g2);
gs.info('Testing'+' '+sub.getDisplayValue());
}
Please mark if that helps you!!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-14-2020 05:29 AM
Hi Priya,
The above code dint work for me,
Actually the output should be 1 year 14 months 1190 days.