我试图将从 new Date() 获得的今天的日期与 MM/DD/YYYY 格式的日期进行比较,并使用我的自定义过滤器过滤数组中的数据列表。有没有办法比较这个..我尝试将小时设置为 (0,0,0,0) 并比较,但它不起作用..我们也可以在 json 数据中设置小时并比较...我的 javascript看起来像这样......这是 plunker 链接。 http://plnkr.co/edit/unB6m8ZyqGnmiYfeaLoP?p=preview 。我可以比较 id:4,5 但不能比较 1,2,3,因为日期格式不同...主要目的是根据用户输入显示最近几天的数据..有没有办法比较这两个日期并过滤所需的数据。
// Code goes here
var app = angular.module('tempfilter', []);
app.controller('MainCtrl', function($scope) {
$scope.sensordata = [
{id:'id:1',name:'Rob',Date:"5/11/2014","Temp":42},
{id:'id:1',name:'Don',Date:"2015-05-11","Temp":42},
{id:'id:2',name:'Bob',Date:"2015-02-22T17:16:14.720Z","Temp":50},
{id:'id:3',name:'Tom', Date: new Date().getDate(),"Temp":60},
{id:'id:4',name:'Sinclair',Date: new Date(),"Temp":65}
];
$scope.filter = { value:16490 };
});
app.filter('tempo', function() {
return function( items, field, value) {
var filtered = [];
var epoch = new Date(); // today!
epoch.setHours(0,0,0,0);
epoch.setDate(epoch.getDate()-value);
angular.forEach(items, function(item) {
if (item[field]>epoch){
filtered.push(item);
}
});
return filtered;
};
});
最佳答案
我认为你可以使用日期的 getTime() 方法。例如:
var Today = new Date().getTime()
var jsonDate = new Date("2015-02-20").getTime()
然后根据您的需要比较今天和 jsonDate。 getTime() 函数返回自 1970 年 1 月 1 日以来的时间(以毫秒为单位)。我希望这会对您有所帮助。
关于javascript - 我们可以将 Controller 中的 JSON 数据(MM/DD/YYYY 格式)与自定义过滤器中的今天日期进行比较,并在数组中显示过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682340/