尝试将 2015-02-21T21:48:48.137Z 格式的新日期(今天的日期)与 MM/DD/YYYY 格式的日期进行比较,这是我的 json 数据。我想根据用户输入的天数过滤今天之前的所有数据(在没有特定天数之前获取数据)..我可以得到天数并从今天的日期中减去它。不知道如何将此日期与 MM/DD/YYYY 格式的 Json 日期值进行比较。我应该解析 Date() 以便与 MM/DD/YYYY 格式的 JSON 数据进行比较
我可以使用新的 Date() 根据 2015-02-20T21:48:48.137Z 格式获取用户输入并从今天的日期中减去它。我的数据是 MM/DD/YYYY 格式,所以需要一种方法来比较我的值以 MM/DD/YYYY 格式减去日期后得到。我是否需要更改过滤器中的参数并通过 ng-model 输入日期和值。
http://plnkr.co/edit/unB6m8ZyqGnmiYfeaLoP?p=preview
// Code goes here
var app = angular.module('tempfilter', []);
app.controller('MainCtrl', function($scope) {
$scope.sensordata = [{
name: 'Rob',
"Date": "2015-02-15",
"Temp": 42
}, {
name: 'Bob',
"Date": "2015-02-19",
"Temp": 50
}, {
name: 'Tom',
"Date": new Date().getDate(),
"Temp": 60
}, {
name: 'Sinclair',
"Date": new Date(),
"Temp": 65
}];
$scope.filter = {
value: 2
};
});
app.filter('tempo', function() {
return function(items, field, value) {
var filtered = [];
var d = new Date(); // today!
!d.setDate(d.getDate() - value); //date before today
angular.forEach(items, function(item) {
if (item[field] <= d) {
filtered.push(item);
}
});
return filtered;
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
<!DOCTYPE html>
<html ng-app="tempfilter">
<head lang="en">
<meta charset="utf-8">
<title>DateFilter</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<script>
document.write('<base href="' + document.location + '" />');
</script>
<script src="script.js"></script>
</head>
<body ng-controller="MainCtrl">
Number of days before today
<input type="number" ng-model="filter.value">
<p id="demo">Showing values lower than {{ filter.value }}</p>
Filtered list:
<ul>
<li ng-repeat="s in sensordata | tempo:'Date':filter.value">{{s.Date|date:'MM/dd/yyyy'}} {{s.name}} {{s.Temp}}
</li>
</ul>
Full List:
<ul>
<li ng-repeat="s in sensordata ">{{s.Date|date}} {{s.name}} {{s.Temp}}
</li>
</ul>
</body>
</html>