我有以下代码:
<div ng-repeat="(key, value) in history | groupBy:'date'">
<div>{{key}}</div>
<div ng-repeat="item in value">
{{item}}
</div>
</div>
我想以这种格式显示我的历史:
2015-10-10
item 1
item 2
item 3
2015-10-11
item 4
item 5
2015-10-12
item 6
item 7
此代码可以正常工作,但date
属性是时间戳。每个项目按小时和秒钟不同。非常重要的是,这些项目按天分组,没有时间。
答案 0 :(得分:1)
根据answer的author提出的angular-filter
,我使用momentjs
找到了一个很好的解决方案:
<强> HTML 强>
<div ng-repeat="(key, value) in history | map: toDay | groupBy:'date'">
<div>{{key}}</div>
<div ng-repeat="item in value">
{{item}}
</div>
</div>
<强>控制器强>
$scope.toDay = toDay;
function toDay( history ) {
history.day = moment( history.date ).format( "L" );
return history;
}
假设您有一个有效的javascript
Date
对象而不使用momentjs
,那么您的功能将是相似的:
function toDay( history ) {
history.date = history.date.toLocaleDateString();
return history;
};
答案 1 :(得分:0)
作为后端开发人员,我在这个问题上待了好几个小时,但我意识到您可以在以前使用时间,但是现在可以退出,因为它可以完全格式化您的时间戳。
例如groupBy | datesubmitted:timeago然后它将按小时,天等分组