我有以下代码:
<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
属性是时间戳。每一项以小时和秒为单位。重要的是,项目是在没有时间的情况下按日分组的。
发布于 2016-02-29 08:03:06
根据这个回答由作者 of 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;
};
发布于 2019-11-19 04:40:15
作为后端开发人员,我花了几个小时时间处理这个问题,但我意识到你可以在以前使用时间--时间和时间是一样的,但是它可以不使用纯格式的时间戳。
例如,groupBy \ datesubmitted : timeago,然后它将按小时、天数等进行分组。
https://stackoverflow.com/questions/33668848
复制