如何按带有时间戳的日期分组? (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 然后它将按小时、天等分组