过滤日期在7天之内

时间:2018-02-05 02:38:25

标签: angularjs angularjs-filter

我有一个工作日期过滤器,可以接受2018-02-09T19:35:54+00:00之类的日期字符串,并按日期排序事件。我希望我的过滤器只能在接下来的7天内推送商品。我觉得我的代码中有一个基本的算术错误。

function dashCalDateFilter() {
  return function(collection, key) {
      let output    = [];
      let keys      = [];
      let sevenDays = Date.now() + 604800000;

      angular.forEach(collection, function(item) {
        var ikey = item[key];
        if (keys.indexOf(ikey) === -1) {
          keys.push(ikey);
          item['isFirst'] = true;
        }
        console.log(item.start_time);
        if (Date.now() - Date.parse(item.start_time) < sevenDays){
          output.push(item);
        };
      });
      return output;
    };
}
export default dashCalDateFilter;

1 个答案:

答案 0 :(得分:0)

我的数学有点过时了。这是工作版

function dashCalDateFilter() {
  return function(collection, key) {
      let output    = [];
      let keys      = [];
      let sevenDays = 604800000;

      angular.forEach(collection, function(item) {
        var ikey = item[key];
        if (keys.indexOf(ikey) === -1) {
          keys.push(ikey);
          item['isFirst'] = true;
        }
        if ((Date.parse(item.start_time) - Date.now()) < 604800000){
          output.push(item);
        } else {
          console.log('in >7 days');
          console.log(Date.parse(item.start_time) - Date.now());
        };
      });
      return output;
    };
}
export default dashCalDateFilter;