Reputation: 862
This is my sample data
{
"day": "Sunday",
"count": [{
"desc": "sunday one event"
}, {
"j": [{
"start": "11:00 pm"
}, {
"end": "11:51 pm"
}]
}, {
"desc": "sunday second event"
}, {
"j": [{
"start": "12:00 am"
}, {
"end": "12:06 am"
}]
}]
}
I want to show the above data sorted on the time (UTC format) property using angular.js.
I have tried using moment.js
but can't figure it out.
Upvotes: 0
Views: 446
Reputation: 3820
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")
}
];
}
Upvotes: 1