Edited at

【AngularJS】日付範囲の選択を実現するカスタムフィルタ

More than 5 years have passed since last update.

ググっても上手く見つからず、自分で作ってみました。

// 日付範囲選択用のフィルタ

app.filter('dateSelectFrom', function() {
return function(input, from) {
var arr = [];
input.some(function(v, i) {
if (v.date >= Date.parse(from)) {
arr.push(input[i]);
}
});
return arr;
};
});
app.filter('dateSelectTo', function() {
return function(input, to) {
var arr = [];
input.some(function(v, i) {
if (v.date <= Date.parse(to)) {
arr.push(input[i]);
}
});
return arr;
};
});

こんな感じでフィルタを適用できます。

<tr ng-repeat="item in items|dateSelectFrom:dateFrom|dateSelectTo:dateTo>

ユーザに日付を選択させる場合は、HTML5の

<input type="date" ng-model="dateFrom">

を使うと楽。

動くサンプルはこちらから。

【AngularJS】日付範囲の選択を実現するカスタムフィルタ - jsdo.it