You can sort the array by date if you first format the date as yyyymmdd. In this example, I had an array of docunids. I retrieved the corresponding docs and then sorted them by customer name (a field in the docs) and returned a doc collection. This should help you get started.
//build a dcol
//sort by cusnm first
var newarr = new Array();
var idarr = sessionScope.QResUNIDs;
if (idarr==null){return(null); }
var doc = null;
for(x=0;x<idarr.length;x++){
doc = database.getDocumentByUNID(idarr[x]);
newarr.push(doc.getItemValueString("CusNm") + "~" + doc.getUniversalID());
}
//sort the array
var xentrystr = "";
var yentrystr = "";
var xtmp = "";
var ytmp = "";
var entryarr = new Array();
for(x=0;x<newarr.length;x++){
for(y=0;y<newarr.length;y++){
xentrystr = newarr[x];
entryarr = xentrystr.split("~");
xtmp = entryarr[0];
yentrystr = newarr[y];
entryarr = yentrystr.split("~");
ytmp = entryarr[0];
if(xtmp<ytmp){
stmp = newarr[x];
newarr[x] = newarr[y];
newarr[y] = stmp;
}
}
}
//return a dcol
var stmp = newarr.join(",");
var pos = stmp.indexOf(",");
if(pos=-1){ //none or one
if(stmp==""){
return(null);
}
}
var newdcol = database.createDocumentCollection();
for(n=0;n<newarr.length;n++){
stmp = newarr[n];
entryarr = stmp.split("~");
stmp = entryarr[1];
doc = database.getDocumentByUNID(stmp)
if (doc!=null){
newdcol.addDocument(doc);
}
}
return(newdcol);
}