GlideDateTime in client side javascript

User150433
Tera Guru

I have a requirement to generate a report to display records from 9AM yesterday till 9AM today. To get that report I built a URL by passing sysparm_query as shown below

https://demo004.service-now.com/change_request_list.do?sysparm_query=sys_created_onBETWEENjavascript... GlideDateTime(gs.yesterday()).getDate().toString(),'09:00:00')@javascript:gs.dateGenerate(gs.now(),'09:00:00')

on this URL

javascript:gs.dateGenerate(gs.now(),'09:00:00') -- this part returns proper value but javascript:gs.dateGenerate(new GlideDateTime(gs.yesterday()).getDate().toString(),'09:00:00') does not return any value. If I run the script in background script it returns me correct value. SO it seems like script include "GlideDateTime" may not be available on client side. This script include is not exposed in the system as well..

Is there any way to get this working?

Thanks
Amit

2 REPLIES 2

bushra_akhtar
Mega Contributor

The problem is that the gs.yesterday() return dateTime where gs.now() just returns the date

What you can do is remove the time component and just use the date

https://demo004.service-now.com/change_request_list.do?sysparm_query=sys_created_onBETWEENjavascript:gs.dateGenerate(gs.yesterday().split('%20')[0],'09:00:00')@javascript:gs.dateGenerate(gs.now(),'09:00:00')


This will work if you have fixed date time format. this is how I implemented it...

create client callable script include

var reportFuncs = Class.create();
reportFuncs.prototype = {
getYesterday:function() {
return gs.dateGenerate(new Packages.com.glide.glideobject.GlideDateTime(gs.yesterday()).getDate(),'09:00:00');
},

getToday:function() {
return gs.dateGenerate(gs.now(),'09:00:00');
},


getTomorrow:function() {
var gd = new Packages.com.glide.glideobject.GlideDateTime();
gd.add(86400000);
return gs.dateGenerate(gd.getDate(),'09:00:00');
},

type: 'reportFuncs'
};


you can use it as below

https://demo004.service-now.com/change_request_list.do?sysparm_query=sys_created_onBETWEENjavascript:new reportFuncs().getToday()@javascript:new reportFuncs().getTomorrow()