Angular js - 在$ scope中增加月数

时间:2014-09-08 09:35:42

标签: javascript angularjs date filter

我想像这样增加月份:

 var date = new Date();
    $scope.month = $filter('date')(date, 'MMMM');
    $scope.nextMonth = function () {                
     //set next month
     $scope.month = $filter('date')(new Date($scope.month).getMonth()+1, 'MMMM');
    };

我怎样才能实现这一目标?

例如,如果

$scope.month = "November";

$ scope.nextMonth(); 应设置$scope.month = "December";

  

注意:我无法使用任何外部库

3 个答案:

答案 0 :(得分:5)

Angular没有内置任何内容来执行此操作,因此您需要使用本机Javascript Date方法。

但是,如果您在日期方面做了大量工作,我强烈建议moment.js

这将使上述非常简单:

$scope.month = moment().format('MMMM')
$scope.nextMonth = function(){
    $scope.month.add(1, 'month');
}

编辑:

如果不使用外部库,您仍然可以执行此操作,并且您几乎拥有代码:

$scope.nextMonth = function(){
  date.setMonth(date.getMonth() + 1);
  return $scope.month = $filter('date')(date, 'MMMM');
}

答案 1 :(得分:1)

仅工作数月

$scope.nextMonth = function(){
  var index = $locale.DATETIME_FORMATS.MONTH.indexOf($scope.month);
  $scope.month = $locale.DATETIME_FORMATS.MONTH[index == 11 ? 0 : index + 1];
}

答案 2 :(得分:0)

 $scope.date = (new Date((new Date()).setMonth((new Date()).getMonth()
 + 1))).toLocaleDateString('fr-FR')