我正在尝试过滤两个日期之间的数据。我试图解决它,但我无法完成它。任何人都可以帮助我吗?
我的HTML:
<input type="date" ng-model="from_date">
<input type="date" ng-model="to_date">
我的重复:
<tr ng-repeat="item in outlets | dateRange:from_date:to_date">
<td>{{ item.offerID }}</td>
<td>{{ parseDate(item.startDate) | date:'yyyy-MM-dd' }}</td>
我的剧本:
app.filter('dateRange', function () {
return function (items, fromDate, toDate) {
var filtered = [];
console.log(fromDate, toDate);
var from_date = Date.parse(fromDate);
var to_date = Date.parse(toDate);
angular.forEach(items, function (item) {
if (item.startDate > from_date && item.startDate < to_date) {
filtered.push(item);
}
});
return filtered;
};
});
来自服务器的jason数据:
{
"offerID": "1"
, "merchant": "Rifa Ladies Salon"
, "outelt": "Rifa Ladies Salon Business Bay"
, "offer": "Rifa Ladies Salon- Offer 1"
, "offerStatus": "LIVE"
, "startDate": "2016-07-12"}
答案 0 :(得分:2)
您正在通过Date.parse进行比较,但是在您的过滤器比较中:
if (item.startDate > from_date && item.startDate < to_date) {
item.startDate 是&#39; YYYY-MM-DD&#39; 格式, from_date 和 to_date < / strong>是时间戳由Date.parse(),
组成所以你只需要选择是否使用Date.parse()?这是你的修复:
if (Date.parse(item.startDate) > from_date && Date.parse(item.startDate) < to_date) {
}
完整过滤器:
app.filter('dateRange', function () {
return function (items, fromDate, toDate) {
var filtered = [];
var from_date = Date.parse(fromDate);
var to_date = Date.parse(toDate);
if (!to_date || !from_date) {
return items;
}
angular.forEach(items, function (item) {
if (Date.parse(item.startDate) > from_date && Date.parse(item.startDate) < to_date) {
filtered.push(item);
}
});
return filtered;
};
});