Filter by date range

by Alexandru Pausan

HTML

<div ng-app="app"> 
    <div ng-controller="MyController"> 
        <div ng-repeat="data in Combination | dateFilter:startDate:endDate ">
            <div >{{data.DepartureDateTime}}</div> 
        </div>
    </div>
</div>

JavaScript

angular
    .module('app',[])
    .controller('MyController', MyController)
    .filter("dateFilter", dateFilter);

function MyController($scope) {
    $scope.Combination = [    
          {
              "DepartureDateTime": "07/14/2015 07:00"
          },
          {
              "DepartureDateTime": "07/14/2015 10:55"
          },
          {
              "DepartureDateTime": "07/14/2015 12:10"
          },
          {
              "DepartureDateTime": "07/14/2015 16:10"
          },
          {
              "DepartureDateTime": "07/14/2015 22:00"
          }  
      ];
    $scope.startDate = "07/14/2015 10:00";
    $scope.endDate = "07/14/2015 20:00";
    console.log($scope.Combination);
};

function dateFilter() {
    return function(input, start, end) {
        var inputDate = new Date(input),
            startDate = new Date(start),
            endDate = new Date(end),
            result = [];
        
        for (var i=0, len = input.length; i < len; i++) {
            inputDate = new Date(input[i].DepartureDateTime);            
            if (startDate < inputDate && inputDate < endDate) {
               result.push(input[i]);
            }  
        }       
        return result;            
  };
};