我使用JLinq来过滤JSON数据。按日期过滤对我不起作用。我试过调用方法但是一样。
这是我的代码段。
//This works
jlinq.from(myData)
.select(function(rec) {
return {
title:rec.title,
pubDate:rec.pubDate
}
});
这是上述代码返回的数据。
// And returned this data
myData = [
{pubDate: "2012-06-19T10:42:59.000Z",
title: "How caching matters in JS?" },
{pubDate: "2012-06-18T14:39:25.000Z",
title: "Globbing in scripting languages"}
{pubDate: "2012-06-14T17:50:22.000Z",
title: "Inspecting Objects in Scripting"}
]
当我尝试按日期过滤时,它无法正常工作。大于或小于。
EDITED
//Filter by pubDate
jlinq.from(myData)
.greater(new Date("pubDate"), new Date("2010-02-13T19:03:17.000Z"))
.select();
此问题特定于比较日期值时。它返回空数组。
//But Returns empty Array
//[]
答案 0 :(得分:1)
我明白了。我认为问题是库假设值是字符串比较长度否则只比较 value1>值2 强>
我改变了这段代码:
//is the value greater than the argument
{ name:"greater", type:framework.command.query,
method:function(value) {
return this.compare({
array:function() { return this.value.length > value; },
string:function() { return this.value.length > value; },
other:function() { return this.value > value; }
});
}},
对此:通过创建另一个名为greaterDate的过滤器,并将该字符串转换为'Date()'
//is the value greaterDate than the argument
{ name:"greaterDate", type:framework.command.query,
method:function(value) {
return this.compare({
array:function() { return this.value.length > value; },
string:function() { return new Date(this.value) > new Date(value); },
other:function() { return new Date(this.value) > new Date(value); }
});
}},
也许有更好的方法,但我知道了解决它。