Angular Filter by Date
by TheFiddler
HTML
<script src="http://code.angularjs.org/1.3.7/angular.min.js"></script>
<div ng-app="alert" ng-controller="homeCtrl">Filtered
<table border="1">
<tbody ng-repeat="order in orders|getOrders">
<tr>
<td>{{order.name}}</td>
<td>{{order.datemodified | date:'shortDate'}}</td>
</tr>
</tbody>
</table>All
<table>
<tbody ng-repeat="order in orders">
<tr>
<td>{{order.name}}</td>
<td>{{order.datemodified | date:'shortDate'}}</td>
</tr>
</tbody>
</table>
</div>
CSS
table {
margin: 10px 0 20px 0;
border: 1px solid #333;
}
td{ padding: 10px;}
JavaScript
var app = angular.module('alert', []);
app.controller('homeCtrl', function ($scope) {
$scope.orders = [{
name: "1",
datemodified: 650000000000
}, {
name: "2",
datemodified: 650000000000
}, {
name: "3",
datemodified: 65000000000000
}, {
name: "4",
datemodified: 65000000000000
}];
});
app.filter('getOrders', function () {
return function (orders) {
var filtered_list = [];
for (var i = 0; i < orders.length; i++) {
var two_days_ago = new Date().getTime() - 2 * 24 * 60 * 60 * 1000;
var last_modified = new Date(orders[i].datemodified).getTime();
if (two_days_ago <= last_modified) {
filtered_list.push(orders[i]);
}
}
return filtered_list;
}
});