对于数组中的每个对象,我有一个来自数据库的创建日期为 2015-12-11T11:12:14.635Z
我想过滤上周和上个月的数组
问题是,如果今天是 3 月 19 日,我要搜索从 11 日到 18 日的过去 7 天,似乎通过计算 24 小时 * 7 来搜索过去 7 天,我的搜索需要从每天 00:00:01。
现在我首先想计算上周......基于使用 moment.js 的当前日期,然后我将其转换为上述格式,以便我可以过滤数据
基本上,我想根据当前时间戳计算上周。
最佳答案
日期应该是:
var last7DayStart = moment().startOf('day').subtract(1,'week');
var lastMonthThisDay = moment().startOf('day').subtract(1,'month');
var yesterdayEndOfRange = moment().endOf('day').subtract(1,'day');
那么如果它是一个javascript过滤器我会使用lodash并执行以下操作:
var javascriptArrayOfObjectsWithDates = [
{ date : '2015-12-11T11:12:14.635Z', anotherProperty: 0 },
{ date : moment().subtract(1, 'day' ).format(), testThis: 'works!'}
];
var filteredObjects = _.filter(javascriptArrayOfObjectsWithDates,
function(each){
return moment(each.date)
.isBetween(last7DayStart, yesterdayEndOfRange) ;
});
关于javascript - 使用 moment.js 按 'last month' 和 'last week' 过滤点击时的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35038121/