如何按带有时间戳的日期分组? (AngularJS)
How to group by a date with a timestamp? (AngularJS)
我有以下代码:
<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
属性 是时间戳。每个项目的时和秒都不同。重要的是项目按天分组,没有时间。
根据这个 answer made by the author 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;
};
作为后端开发人员,我在这上面停留了几个小时,但我意识到你可以使用 time ago,它与 moment 相同,但它可以退出 ckly 格式化你的时间戳。
例如groupBy | datesubmitted : timeago 然后它将按小时、天等分组
我有以下代码:
<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
属性 是时间戳。每个项目的时和秒都不同。重要的是项目按天分组,没有时间。
根据这个 answer made by the author 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;
};
作为后端开发人员,我在这上面停留了几个小时,但我意识到你可以使用 time ago,它与 moment 相同,但它可以退出 ckly 格式化你的时间戳。
例如groupBy | datesubmitted : timeago 然后它将按小时、天等分组