To achieve the desired result, a combination of $filter and iterating through an array would be ideal. Let's illustrate this with an example:
//sample values
var objects = [{exampleProp: undefined, date:new Date(3,1,1970) },
{exampleProp: undefined, date:new Date(2,1,1970)},
{exampleProp: undefined, date:new Date(2,1,1970)},
{exampleProp: undefined, date:new Date(1,1,1970)}];
//sort the master array by date property
objects = $filter('orderBy', objects, 'date')($scope);
//grouping the master object by date
var dictionary = {};
objects.forEach(function(object){
if(dictionary[object.date] == undefined)
dictionary[object.date] = [];
dictionary[object.date].push(object);
});
//converting the dictionary to an array of arrays
var objectsByDate = [];
for(var date in dictionary)
objectsByDate.push(dictionary[date]);
Refer to $filter and orderby documentation for more information on ordering by object properties.