[英]how to display the data per hour ago in angular
这是代码:
data = [
{
'name' : 'sample'
'date' : '2020-02-18 13:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 13:20:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 13:12:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 13:13:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 12:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 11:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 07:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 01:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 01:30:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 01:20:01'
},
]
预期输出:
data = [
{
'name' : 'sample'
'date' : '2020-02-18 13:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 12:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 11:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 07:50:01'
},
]
我想在这里做的是显示每小时的数据。 数据将像这样过滤。
data = [
{
'name' : 'sample'
'date' : '2020-02-18 13:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 12:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 11:50:01'
},
{
'name' : 'sample'
'date' : '2020-02-18 07:50:01'
},
]
它不会在一小时前获取其他数据。 如果数据是最后 30 分钟,则不会获取/显示。 数据应该是最后一个小时前,数据应该是每小时前。 它应该是动态的。 因为如果有一个新数据是日期:2020-02-18 14:00:01,那么每小时前:
2020-02-18 14:00:01,
2020-02-18 13:00:01,
2020-02-18 12:00:01 等...
这是代码: https : //stackblitz.com/edit/angular-dnbses?file=src/app/app.component.ts
如果要按year
、 month
、 day
和hour
分组:
const result = data.reduce((a, { name, date }) => {
let currentDate = new Date(date);
let dateHour = currentDate.getFullYear() + '/' + currentDate.getMonth()
+ '/' + currentDate.getDate() + '/' + currentDate.getHours();
a[dateHour] = a[dateHour] || {name, date};
return a;
}, {})
一个例子:
let data = [ { 'name' : 'sample', 'date' : '2020-02-18 13:50:01' }, { 'name' : 'sample', 'date' : '2020-02-18 13:20:01' }, { 'name' : 'sample', 'date' : '2020-02-18 13:12:01' }, { 'name' : 'sample', 'date' : '2020-02-18 13:13:01' }, { 'name' : 'sample', 'date' : '2020-02-18 12:50:01' }, { 'name' : 'sample', 'date' : '2020-02-18 11:50:01' }, { 'name' : 'sample', 'date' : '2020-02-18 07:50:01' }, { 'name' : 'sample', 'date' : '2020-02-18 01:50:01' }, { 'name' : 'sample', 'date' : '2020-02-18 01:30:01' }, { 'name' : 'sample', 'date' : '2020-02-18 01:20:01' }, ] const result = data.reduce((a, { name, date }) => { let currentDate = new Date(date); let dateHour = currentDate.getFullYear() + '/' + currentDate.getMonth() + '/' + currentDate.getDate() + '/' + currentDate.getHours(); a[dateHour] = a[dateHour] || {name, date}; return a; }, {}) console.log(Object.values(result));
在这里,我创建了一个GetDataForHour(dataArray, dateToCompare)
函数,这可能就是答案。 它过滤dataArray
并仅返回具有相同分钟和秒数的dateToCompare
之前的数组实体
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.