dstore 过滤日期范围
dstore filter date range
我有一个具有 date
属性的数据数组,我需要根据日期过滤数据。
我正在使用 dstorejs
来存储如下数据
this.employeeStore = new Memory({data:[emplist],idProperty:"emp_num"});
我需要根据员工的入职日期进行筛选,比如从 2014 年 1 月 1 日到 2015 年 3 月 3 日入职的员工
this.employeeStore.filter({joinDate:'01/01/2014'});
这给出了 2014 年 1 月 1 日加入的所有员工,但如果我需要在
这样的范围内进行过滤
this.employeeStore.filter.gte({joinDate:'01/01/2014'});
这将不起作用,因为它不是一个数字,它是一个 string
或 date
对象
要实现这一点,我是否需要按照他们在 tutorial 中提到的那样编写自定义商店?
还有其他方法吗?
或者是否有类似 dstore
的任何其他框架来实现此目的?
您只需使用 dojo/store
Query filter 即可实现此目的,
使用回调函数精确查询以管理比较日期
并且还使用 dojo/date
compare
函数将您的 emplist 数组的日期与特定日期进行比较,如下所示:
this.employeeStore = new Memory({data: someData});
var compareDate = new Date(2014,1,1);
var results = store.query(function(object){
// compare return -1 if lower
// return 0 if equals
// return 1 if greater
return date.compare(object.date, compareDate) > -1;
});
results.forEach(function(yourResultData){
// some stuff looping results
});
你可以看一个Fiddle 加深理解。
我有一个具有 date
属性的数据数组,我需要根据日期过滤数据。
我正在使用 dstorejs
来存储如下数据
this.employeeStore = new Memory({data:[emplist],idProperty:"emp_num"});
我需要根据员工的入职日期进行筛选,比如从 2014 年 1 月 1 日到 2015 年 3 月 3 日入职的员工
this.employeeStore.filter({joinDate:'01/01/2014'});
这给出了 2014 年 1 月 1 日加入的所有员工,但如果我需要在
这样的范围内进行过滤this.employeeStore.filter.gte({joinDate:'01/01/2014'});
这将不起作用,因为它不是一个数字,它是一个 string
或 date
对象
要实现这一点,我是否需要按照他们在 tutorial 中提到的那样编写自定义商店?
还有其他方法吗?
或者是否有类似 dstore
的任何其他框架来实现此目的?
您只需使用 dojo/store
Query filter 即可实现此目的,
使用回调函数精确查询以管理比较日期
并且还使用 dojo/date
compare
函数将您的 emplist 数组的日期与特定日期进行比较,如下所示:
this.employeeStore = new Memory({data: someData});
var compareDate = new Date(2014,1,1);
var results = store.query(function(object){
// compare return -1 if lower
// return 0 if equals
// return 1 if greater
return date.compare(object.date, compareDate) > -1;
});
results.forEach(function(yourResultData){
// some stuff looping results
});
你可以看一个Fiddle 加深理解。