AngularJS:下拉列表中的月份过滤器

时间:2018-03-29 06:44:32

标签: javascript angularjs

下面我循环了一个月,但总是缺少月份;请帮助相同。我想显示最近3个月的节目显示。

$scope.months = [];
    var myDate = new Date();
    var previousMonth = new Date(myDate);

    for(var i=0;i<4;i++){
    var mon=myDate.getMonth()-i;
    if(mon<-1){
      mon=mon+12;
    }
    previousMonth.setMonth(mon);
    $scope.prevMonth = $filter('date')(previousMonth, 'MMMM');
    console.log("$scope.prevMonth ",$scope.prevMonth)
    $scope.prevYear = $filter('date')(previousMonth, 'yyyy');
    $scope.months.push({"val":previousMonth.getMonth()+1,"month":$scope.prevMonth});
    console.log($scope.months);
    $scope.years.push($scope.prevYear);

    }

1 个答案:

答案 0 :(得分:2)

<强>问题: 这是因为你今天是29天,2月份,最大日期是28.当你试图将月份设置为1(2月),日期设置为29已经设置。它会自动增加月份;)

例如:

var overMaxDate = new Date('2018-03-29');
    overMaxDate.setMonth(1)
    console.log(overMaxDate.toLocaleDateString());
    
var maxDate = new Date('2018-03-28');
    maxDate.setMonth(1)
    console.log(maxDate.toLocaleDateString());

<强>解决方案: 您可以使用https://momentjs.com/库以您喜欢的方式操纵日期。或者你也可以跟踪日子。祝你好运!