Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS按日期筛选帖子,今天不显示';日期_Angularjs_Date_Filter_Momentjs - Fatal编程技术网

AngularJS按日期筛选帖子,今天不显示';日期

AngularJS按日期筛选帖子,今天不显示';日期,angularjs,date,filter,momentjs,Angularjs,Date,Filter,Momentjs,我有一个网站上我正在建设的事件列表,我想过去的事件被自动删除。我已经写了一个过滤器来做这个,除了它也删除今天的事件。我试着用角力矩。这是我的密码: angular.module('zenCityApp') .filter('filterPastDates', function (moment) { return function (events) { var filterByDate = []; for (var i = 0; i < events.le

我有一个网站上我正在建设的事件列表,我想过去的事件被自动删除。我已经写了一个过滤器来做这个,除了它也删除今天的事件。我试着用角力矩。这是我的密码:

angular.module('zenCityApp')
  .filter('filterPastDates', function (moment) {
    return function (events) {
      var filterByDate = [];
      for (var i = 0; i < events.length; i++) {

        var currentDate = new Date();



        if(moment(currentDate).isBefore(events[i].date, 'hour')) {
          console.log("we're in!");
          filterByDate.push(events[i]);
          console.log(filterByDate);
        }


      }
      return filterByDate;
    };
  });
angular.module('zenCityApp')
.filter('FilterPostDates',函数(时刻){
返回函数(事件){
变量filterByDate=[];
对于(var i=0;i
以下是标记:

div ng-repeat="event in events | limitTo:100 | filter:tfilter | orderBy: 'date' | filterPastDates">
        <div class="row">
          <div class="col-md-6">
            <h4>{{event.date | amDateFormat:'MMMM Do'}}</h4>
          </div>
          <div class="col-md-6">
            <h4>{{event.name}}</h4>
          </div>
        </div>
div ng repeat=“事件中的事件| limito:100 |过滤器:tfilter | orderBy:'date'|过滤器最新日期”>
{{event.date | amDateFormat:'MMMM Do'}
{{event.name}

任何帮助都将不胜感激

更好的方法是创建一个要测试的截止时间
时刻。通过使用
.startOf('day')
,矩api为您提供了一种非常简单的方法。这将给你一个
时刻
,代表今天的12:00am(一天中的第一秒)。但是,由于您还希望在过滤器中包含该值,因此可以从该值中减去
1毫秒

var cutOffDate = moment().startOf('day').subtract(1,'millisecond');
现在,您可以轻松地在过滤器中使用它。请注意,我在循环之外创建了该对象(因为它不应该更改),并且我直接将其创建为一个力矩,而不是每次在循环中创建一个新的力矩对象

app.filter('filterPastDates', function () {
  return function (events) {
    if (events && events.length) {
      var filtered = [];
      var cutOffDate = moment().startOf('day').subtract(1,'millisecond');

      for (var i = 0; i < events.length; i++) {
        var evt = events[i];
        if (cutOffDate.isBefore(evt.date)) {
          filtered.push(evt);
        }
      }

      return filtered;
    } else {
      return events;
    }
  };

});
app.filter('filterPostDates',函数(){
返回函数(事件){
if(events&&events.length){
var筛选=[];
var cutOffDate=moment().startOf('day')。减去(1,'毫秒');
对于(var i=0;i

下面是一个示例:我认为您只需要将“小时”更改为“天”,但您确实应该只声明一次currentDate