在angularjs中对月份和年份列进行排序

时间:2018-06-12 10:36:06

标签: javascript angularjs

我有以下日期值列表,

  

1)2018年6月

     

2)2017年3月

     

3)2016年4月

     

4)2017年5月

     

5)2016年9月

     

6)2018年2月

月份可能,但是年份是2017年。应根据月份和年份进行排序。

如何在AngularJS中对这些日期列进行排序?

jsfiddle

var app = angular.module('app', [])
  .controller('appController', appController);

appController.$inject = ['$scope', '$window'];

function appController($scope, $window) {

  $scope.title = "date sorting example";

  $scope.sortType = "name";
  $scope.sortReverse = true;

  var dateA = new Date("12/10/2017");
  console.log(dateA);
  dateA.setDate(dateA.getDate() + 2);
  var dateB = new Date("08/04/2018");
  dateB.setDate(dateB.getDate() + 4);
  var dateC = new Date("04/09/2016");
  dateC.setDate(dateC.getDate() + 7);
  var dateD = new Date("01/01/2017");
  dateD.setDate(dateD.getDate() + 20);

  $scope.allItems = [{
    date: dateA,
    name: "A"
  }, {
    date: dateB,
    name: "B"
  }, {
    date: dateC,
    name: "C"
  }, {
    date: dateD,
    name: "D"
  }];

};
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<body ng-app="app">

  <div ng-controller="appController">

    <h1>This is my {{title}}</h1>
    <table class="table table-striped">
      <thead>
        <td data-ng-click="sortType = name; sortReverse = !sortReverse;">
          Date
        </td>
        <td data-ng-click="sortType = name; sortReverse = !sortReverse;">
          Name
        </td>
      </thead>
      <tbody>
        <tr ng-repeat="item in allItems | orderBy:sortType:sortReverse">
          <td>{{item.date | date:'MMMM yyyy'}}</td>
          <td>{{item.name}}</td>
        </tr>
      </tbody>
    </table>

  </div>
</body>

如何根据月份和年份对这些日期进行排序。

0 个答案:

没有答案