AngularJS仅针对同一月的多个日期显示月份

时间:2018-12-31 05:27:38

标签: arrays angularjs date

我需要按月而非日期显示帐户对帐单。我有一个类似下面的日期;

日期数组

[
  "2018-12-15T06:36:56",
  "2018-12-14T06:36:56",
  "2018-12-16T06:36:56",
  "2018-12-01T06:36:56",
  "2018-11-13T06:36:56",
  "2018-11-01T06:36:56"
]

基于以上示例,我能够遍历每个示例并以人类可读格式分别显示节目。但是,如果有多个日期,我只想显示一个月。

---- P.S ----

我能够将上述数组过滤为“月和年格式(MM-YYYY)”,并且在控制台中也得到了响应。但是我面临在forEach循环外传递此数组的问题。

平均值,如果我在循环内进行此操作,则我将获得阵列形状的正确响应。但是在循环外之后,我只能看到数组对象的最后一个字符串。

请进一步检查plunkr demo

1 个答案:

答案 0 :(得分:0)

没关系,在撞到墙壁上碰碰运气后,我设法做到了。

首先我修改了具有以下循环的“月-年”格式的数组。

$scope.statementListRespone = [
  "2018-12-15T06:36:56",
  "2018-12-14T06:36:56",
  "2018-12-16T06:36:56",
  "2018-12-01T06:36:56",
  "2018-11-13T06:36:56",
  "2018-11-01T06:36:56"
]

var listOutput = $scope.statementListRespone;
var outputList = [];

angular.forEach(listOutput, function(type, $index) {
  output = $filter('date')(listOutput[$index], "MMM yyyy");

  if (output.indexOf(type) === -1) {
    // push this item to our final output array
    outputList.push(output);
  }
});
$scope.outputListFiltered = outputList;

这将为我们提供如下结果;

outputList:修改后的数组

[
  "Oct 2018",
  "Nov 2018",
  "Nov 2018",
  "Dec 2019",
  "Dec 2019",
  "Dec 2019",
  "Dec 2019"
]

比视图部分多,我在(plunkr)的第27行中更新了循环代码;

查看

<tr ng-repeat="stateItem in sortedType = (outputListFiltered | unique)">

注意:我使用angular.filter库过滤唯一值。