javascript - 使用 moment.js 按 'last month' 和 'last week' 过滤点击时的对象数组

标签 javascript angularjs filter momentjs angular-moment

对于数组中的每个对象,我有一个来自数据库的创建日期为 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/

相关文章:

javascript - 当用户选择他/她的文件时更改文件输入按钮的文本

javascript - 结合过滤器和包含过滤多个值

javascript - 动态加载Javascript理解

javascript - Angular RxJs - 在第二个流中填充数组(嵌套流)

javascript - 带有 Angular JS 实现的 Ratchet

angularjs - 修改数组中由 ng-repeat 从 ng-init 指令迭代的对象

angularjs - 为什么使用 ngMock 包装第三方 Promise 时 $q.when 无法解析?

filter - MongoDB - 在结果集中过滤内部数组的内容

java - Portletfilter 更改区域设置?

Javascript Console Clear 禁用所有控制台日志而不是清除