【问题标题】:angular - filter all the objects that the startDate and EndDate is in range of month and year that was selectedangular - 过滤 startDate 和 EndDate 在所选月份和年份范围内的所有对象
【发布时间】:2016-05-16 17:27:51
【问题描述】:

我想过滤并获取正在发送的月份和年份范围内的所有广告系列。 例如, 开始日期 - 2/1/16 结束日期 - 2017 年 1 月 2 日 年份 - 2016 月 - 4 我希望从 2016 年 2 月到 2017 年 1 月的所有月份都展示此广告系列

app.filter('dateFilter', function () {
    return function (campaigns, year, month) {
        var filtered = [];
        if (!campaigns)
            return null;
        for (var i = 0; i < campaigns.length; i++) {
            var startDate = new Date(campaigns[i].startTime);
            var endDate = new Date(campaigns[i].endTime);

            if ( Validation )
                filtered.push(campaigns[i]);
        }
        return filtered;
    };
});

【问题讨论】:

  • 只用.getTime和Date.now来比较,
  • 发送到函数的月份和年份不是 date.now。用户可以选择按月和年过滤结果。所以 Date.not 帮不了我。
  • 嗯,你可以很容易地创建一个这样的日期:new Date('2015-01-01T18:00:00'),这样你就可以用.getTime得到一个时间戳,然后比较时间戳。
  • 另外,如果您使用的是 ES2015,最好使用数组的 map 方法或 filter 方法。一个 ES2015 解决方案看起来像 filters = campaign.filter(campaign => { const filterDate = new Date(${year}-${month}-01T00:00:00); return campaign[i].startTime filterDate; }); es6fiddle.net/ikbli17q
  • 对于大多数人来说,2/1/16 是 1 月 2 日。

标签: javascript date angular-filters


【解决方案1】:

好的,找到了答案,毕竟这很容易。 我刚刚使用空的日期值创建了 startDate 和 endDate 并检查了范围。

 for (var i = 0; i < campaigns.length; i++) {
            var startDate = new Date(campaigns[i].startTime);
            var endDate = new Date(campaigns[i].endTime);
            startDate = new Date(startDate.getFullYear(), startDate.getMonth());
            endDate = new Date(endDate.getFullYear(), endDate.getMonth());
            var dateCheck = new Date(year, month - 1);
            if (dateCheck >= startDate && dateCheck <= endDate)
                filtered.push(campaigns[i]);
        }

【讨论】:

  • 如果 startTime 和 endTime 是时间戳,可以更简单地完成: var filterDate = new Date(year + "-" + month + "-01T00:00:00").getTime(); if (campaigns[i].startTime filterDate) ...
猜你喜欢
  • 1970-01-01
  • 2017-03-02
  • 2021-02-03
  • 1970-01-01
  • 2012-12-14
  • 2017-11-05
  • 1970-01-01
  • 2013-11-01
  • 1970-01-01
相关资源
最近更新 更多