Use moment('11/06/2017 11:00').format("DD-MM-YYYY HH:mm") to format your Date Strings to Date objects using Moment.js.
To sort your results make use of the orderBy option of the ngRepeat directive (or provide a custom filter if deeper filtering is needed):
{{ array | orderBy : expression}}
View
<div ng-app="app" ng-controller="DateController as vm">
<b>Events</b>
<div ng-repeat="ev in vm.events | orderBy: 'date' ">
{{::ev.name}} - {{::ev.date}}
</div>
</div>
Or sort reverse by using -:
<div ng-repeat="ev in vm.events | orderBy: '-date' ">
Controller
angular
.module('app', [])
.controller('DateController', DateController)
function DateController($scope) {
var vm = this;
vm.events = [
{
"name" : "sunday first event",
"date" : moment('11/06/2017 11:00').format("DD-MM-YYYY HH:mm")
},
{
"name" : "sunday third event",
"date" : moment('11/06/2017 16:00').format("DD-MM-YYYY HH:mm")
},
{
"name" : "sunday late event",
"date" : moment('11/06/2017 21:00').format("DD-MM-YYYY HH:mm")
},
{
"name" : "sunday second event",
"date" : moment('11/06/2017 12:00').format("DD-MM-YYYY HH:mm")
}
];
}
JSFiddle