如何使用Moment.js筛选出距离当前时间最近7天的数据?
你可以直接用Moment自带的时间对比方法完成筛选,注意要先做筛选再做格式化,不要用格式化后的字符串做时间对比,很容易出格式兼容问题。
实现逻辑
- 先计算当前时间往前推7天的基准时间节点
- 用
filter方法遍历数组,判断每条记录的创建时间是否晚于/等于7天前的节点 - 筛选完成后再对符合要求的时间做格式化
完整代码示例
// 生成7天前的时间基准对象 const sevenDaysAgo = moment().subtract(7, 'days'); // 先筛选后格式化 const result = concerns // 筛选出7天内的记录,isSameOrAfter会包含刚好满7天的时间点 .filter(item => moment(item.dateCreated).isSameOrAfter(sevenDaysAgo)) // 对筛选后的结果做格式化 .map(item => moment(item.dateCreated).format('LL'));
可选调整
如果不需要包含刚好满7天的时间节点,把isSameOrAfter替换为isAfter即可。
你给出的示例数据都是UTC带Z标识的标准格式,Moment可以直接正确解析,不需要额外做时区转换处理。
内容的提问来源于stack exchange,提问作者XypriL
相关产品推荐
相关产品推荐

