我的VueJs页面中有一个数据表,并通过ajax请求获取其数据。返回数据是这样的
{
name: "Test Name",
created_at: "2019-06-14 07:31:15"
}
我有一些按钮,应该使用以下规则过滤数据:
Created data within the last 5 mins
Created data within the last 15 mins
Created data within the last 30 mins
鉴于我的created_at
该怎么做?我有这个当前功能
computed: {
filterData() {
return this.customers.filter(item => item.created_at.includes(new Date().getDay()+1));
}
}
数据this.customers
是我来自ajax请求的数据。
我只是从这里filter response data date wise vue引用它。基于此,我希望该数据将被1天前的数据过滤。但这对我也不起作用。也许是因为我的日期是日期时间而不是日期?
答案 0 :(得分:0)
如果您的日期格式默认为JS Date函数可解析,则可以尝试以下代码。两个日期之间的减号(-)将使差异以毫秒为单位。除以60 * 1000可得到以分钟为单位的差异。
a = [{
name: "Test Name",
created_at: "2019-09-29 10:00:15"
},
{
name: "Test Name",
created_at: "2019-09-29 10:21:15"
},
{
name: "Test Name",
created_at: "2019-09-29 09:21:15"
},
{
name: "Test Name",
created_at: "2019-09-29 09:50:15"
}]
const filterByLastMins = (mins, arr) => {
const currentTime = new Date();
return arr.filter((elem) => {
const diffInMins = (currentTime - Date.parse(elem.created_at)) / (1000 * 60);
return diffInMins < mins
})
}
res = filterByLastMins(60, a);
console.log(res);