如何按时间戳分组日期? (AngularJS)

时间:2015-11-12 10:05:54

标签: javascript angularjs timestamp ng-repeat

我有以下代码:

<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属性是时间戳。每个项目按小时和秒钟不同。非常重要的是,这些项目按天分组,没有时间。

2 个答案:

答案 0 :(得分:1)

根据answerauthor提出的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然后它将按小时,天等分组