Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Sorting dates in an array

sachinshivakuma
Mega Contributor

Hi All,

I am trying to sort an array based on dates.

Can anyone guide me on this?

Thanks in Advance.

1 ACCEPTED SOLUTION

antin_s
ServiceNow Employee
ServiceNow Employee

Hi Sachin,



The below might help.



var date_sort_asc = function (date1, date2) {




  if (GlideDateTime(date1.created) > GlideDateTime(date2.created)) return 1;


  if (GlideDateTime(date1.created) < GlideDateTime(date2.created)) return -1;


  return 0;


};




var date_sort_desc = function (date1, date2) {




  if (GlideDateTime(date1.created) > GlideDateTime(date2.created)) return -1;


  if (GlideDateTime(date1.created) < GlideDateTime(date2.created)) return 1;


  return 0;


};






var inc = new GlideRecord('change_request');


inc.orderBy('number');


inc.query();




var arr = [];


while(inc.next()){


var obj = {};


obj.number = inc.number + '';


obj.created = inc.sys_created_on + '';


arr.push(obj);


}




for(var i=0 ; i<arr.length; i++){




gs.log(arr[i].number);


}




arr.sort(date_sort_asc);




gs.log('AFTER SORT');




for(var i=0 ; i<arr.length; i++){



gs.log(arr[i].number);


}



Hope this helps. Mark the answer as correct/helpful based on impact.



Thanks


Antin


View solution in original post

3 REPLIES 3

Shishir Srivast
Mega Sage

antin_s
ServiceNow Employee
ServiceNow Employee

Hi Sachin,



The below might help.



var date_sort_asc = function (date1, date2) {




  if (GlideDateTime(date1.created) > GlideDateTime(date2.created)) return 1;


  if (GlideDateTime(date1.created) < GlideDateTime(date2.created)) return -1;


  return 0;


};




var date_sort_desc = function (date1, date2) {




  if (GlideDateTime(date1.created) > GlideDateTime(date2.created)) return -1;


  if (GlideDateTime(date1.created) < GlideDateTime(date2.created)) return 1;


  return 0;


};






var inc = new GlideRecord('change_request');


inc.orderBy('number');


inc.query();




var arr = [];


while(inc.next()){


var obj = {};


obj.number = inc.number + '';


obj.created = inc.sys_created_on + '';


arr.push(obj);


}




for(var i=0 ; i<arr.length; i++){




gs.log(arr[i].number);


}




arr.sort(date_sort_asc);




gs.log('AFTER SORT');




for(var i=0 ; i<arr.length; i++){



gs.log(arr[i].number);


}



Hope this helps. Mark the answer as correct/helpful based on impact.



Thanks


Antin


Hi Sachin

Where do these parameters (date1, date2) come from?

var date_sort_asc = function (date1, date2) {

Thanks