javascript - 根据时间戳获取今天和昨天的项目
问题描述
我有一个使用 lowdb 生成的 json 对象。每个 json 条目都有一个时间戳。我不想根据时间戳获取昨天和今天的所有条目。
这里的 items 变量只是一个 json 对象。这是一个示例
{
"items": [
{
"date": 1596131220030,
"item": {
"price": "160,00",
"title": "Cotton Quarter-Zip Sweater"
}
},
{
"date": 1596232321030,
"item": {
"price": "160,00",
"title": "Cotton Quarter-Zip Sweater"
}
}
]
}
我想在这个功能中获取昨天和今天的物品
export async function report(){
try {
const items = db.get('items').value();
return items;
} catch (error) {
console.log(error);
}
}
解决方案
您可以与“今天”和“昨天”开始的时间值进行比较,例如
// Return time value for the start of given date, default is today
function getToday(d = new Date()) {
return new Date(+d).setHours(0,0,0,0);
}
// Return time value for the start of day prior to given day, default is today
function getYesterday(d = new Date()) {
let e = new Date(getToday(d));
return e.setDate(e.getDate() - 1);
}
let data = {
"items": [
{"date": 1596085802005, // 30 Jul 2020
"item": "1"
},
{"date": 1596131220030, // 31 Jul 2020
"item": "2"
},
{"date": 1596232321030, // 1 Aug 2020
"item": "3"
}
]
}
// Run as for 1 Aug 2020
let yesterday = getYesterday(new Date(2020,7,1));
let result = data.items.filter(item => item.date >= yesterday);
console.log(result);
结果可能因主机时区偏移量而异,因为上述使用本地日期值。
推荐阅读
- php - 如何在 Twig 中获取数组第一个键名?
- jmeter - 如何在 Jmeter 中分析对特定请求的回答
- vba - 使用 MSXML2.XMLHTTP 从网页中提取 JSON 值
- php - 如何在laravel中保存生成的二维码?
- php - 如何在 PHP 中修复“未捕获的错误:调用未定义的方法”
- angular - 如何在工作表 JS 中设置列格式
- angular - 在 ng2-charts 中自定义图例形状
- jquery - 第一次未选中单选按钮
- json - Gatsby:在页面上组合两个 graphql 源(.json 和 .jpg 源)
- python - 如何在安装后脚本中访问安装目录?