2017-06-12 54 views
0

时间属性这是我的样本数据如何排序使用Angular.js和ngRepeat

{ 
    "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" 
     }] 
    }] 
} 

我想告诉分类使用angular.js时间(UTC格式)性的上述数据。

我试过使用moment.js,但无法弄清楚。

+1

到目前为止,你已经尝试过什么?显示代码。 – SaiUnique

+0

检查MomentJS库https://momentjs.com/docs/ –

+1

是Date对象的时间数据实例吗? –

回答

1

使用moment('11/06/2017 11:00').format("DD-MM-YYYY HH:mm")可以使用Moment.js将日期字符串格式化为日期对象。

要对结果进行排序利用ngRepeat指令的orderBy选项(或提供自定义filter如果需要更深层次的过滤):

{{ array | orderBy : expression}} 

查看

<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> 

或排序通过使用-反向:

<div ng-repeat="ev in vm.events | orderBy: '-date' "> 

控制器

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

+0

但是我的日期格式为'{“day”:“Sunday”,“count”:[{“desc”:“星期日一个事件”},{“gj”:[{“start”:“11 :00 pm“},{”end“:”11:51 pm“}]},{”desc“:”星期日第二事件“},{”gj“:[{”start“ },{“end”:“12:06 am”}]}]}''能够做orderby –