- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-25-2022 12:19 AM
Hi All,
We have created a widget and widget visibility is based on SLA breach time. If SLA breach time is less than one day from today then we want to show the button.
For this I have tried below script to fetch the date difference in days only between now time and breach time. So the value I am getting in background script for days and time difference is correct but when I making it for days only it is returning undefined in script background.
Below is the my script and output. Please let me know how can i get the days difference between two date time fields in server script.
var sla = new GlideRecord('task_sla');
sla.addQuery('task', 'e5c796911b9781502e25a8ade54bcbcd');
sla.query();
if(sla.next())
{
var nowTime = new GlideDateTime();
var gdt = new GlideDateTime(sla.original_breach_time);
//gdt.addDaysUTC(-1);
var answer = gs.dateDiff(nowTime, gdt, false);
gs.print("Days is: "+answer);
var days = answer.getRoundedDayPart();
gs.print("Number of Days is: "+days);
}
Output :-
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-25-2022 12:38 AM
Hi,
Please use subtract() method of GlideDateTime instead of dateDiff and it has inbuilt function to get Day part i.e. getDayPart()
subtract(GlideDateTime start, GlideDateTime end)
something like this
var sla = new GlideRecord('task_sla');
sla.addQuery('task', 'e5c796911b9781502e25a8ade54bcbcd');
sla.query();
if(sla.next())
{
var nowTime = new GlideDateTime();
var gdt = new GlideDateTime(sla.original_breach_time);
var dur = new GlideDuration();
dur = GlideDateTime.subtract(nowTime, gdt);
var daysPart = dur.getDayPart();
gs.info(daysPart);
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-25-2022 12:25 AM
explore getDay() method
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-25-2022 12:38 AM
Hi,
Please use subtract() method of GlideDateTime instead of dateDiff and it has inbuilt function to get Day part i.e. getDayPart()
subtract(GlideDateTime start, GlideDateTime end)
something like this
var sla = new GlideRecord('task_sla');
sla.addQuery('task', 'e5c796911b9781502e25a8ade54bcbcd');
sla.query();
if(sla.next())
{
var nowTime = new GlideDateTime();
var gdt = new GlideDateTime(sla.original_breach_time);
var dur = new GlideDuration();
dur = GlideDateTime.subtract(nowTime, gdt);
var daysPart = dur.getDayPart();
gs.info(daysPart);
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-25-2022 02:08 AM
Hi Ankur,
Thank you for this quick help. I appreciate your efforts and it worked for me. Thank you so much.
Regards
Kumar

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-25-2022 02:08 AM
Hi Evan,
Using gs.beginningOfYesterday().
var sla = new GlideRecord('task_sla');
sla.addQuery('task', 'e5c796911b9781502e25a8ade54bcbcd');
sla.query();
if (sla.next()) {
var nowTime = new GlideDateTime();
var gdt = new GlideDateTime(sla.original_breach_time);
var yesterday = new GlideDateTime(gs.beginningOfYesterday());
if (gdt.getDate() == yesterday.getDate()) {
gs.info('breach date is 1 day from today.');
}
}