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