Вот мой текущий MomentJS код:

var date = moment($scope.dt);

for (var i = 0; i < parseInt($scope.numPagos); i++) {
    $scope.resultados.push({
        'numerodecuota' : i + 1,
        'fechas' : date.add(1, 'days').format("MM/DD/YYYY"),
        'pagos' : Math.round($scope.importeprestamo / $scope.numPagos + interes),
        'interes' : Math.round(interes),
        'capital' : $scope.importeprestamo / $scope.numPagos,
        'fechaunix' : date.add(1, 'days').unix()
    }); 

}// End for loop

И вот результат:

Result

Должно быть:

  • 01/12/2017
  • 01/13/2017
  • 01/14/2017
  • 01/15/2017

И так далее.

0
Luis Alvarez 11 Янв 2017 в 20:47

3 ответа

Лучший ответ

Потому что вы добавляете один день дважды в своем коде

Однажды здесь

'fechas': date.add(1, 'days').format("MM/DD/YYYY"),

Снова здесь

  'fechaunix': date.add(1, 'days').unix()

Добавить только один раз. посмотрите пример

var app = angular.module("app", []);
app.controller("ctrl", function($scope) {
  var date = moment();
  $scope.numPagos="5";
  $scope.resultados=[];

  for (var i = 0; i < parseInt($scope.numPagos); i++) {
    $scope.resultados.push({
      'numerodecuota': i + 1,
      'fechas': date.add(1, 'days').format("MM/DD/YYYY"),
      //'pagos': Math.round($scope.importeprestamo / $scope.numPagos + interes),
      //'interes': Math.round(interes),
      //'capital': $scope.importeprestamo / $scope.numPagos,
      'fechaunix': date.unix()
    });

  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  {{resultados}}
</div>
1
Naghaveer Gowda 11 Янв 2017 в 17:58

Примечание: следует отметить, что моменты изменчивы. Вызов любого из методов манипуляции изменит исходный момент.

http://momentjs.com/docs/

Похоже, вы добавляете 1 день, а затем добавляете еще один день для fechaunix даты. Попробуйте просто установить fechaunix на date, как только он будет добавлен:

$scope.resultados.push({
     'numerodecuota' : i + 1,
     'fechas' : date.add(1, 'days').format("MM/DD/YYYY"),
     'pagos' : Math.round($scope.importeprestamo / $scope.numPagos + interes),
     'interes' : Math.round(interes),
     'capital' : $scope.importeprestamo / $scope.numPagos,
     'fechaunix' : date.unix()
}); 
3
Sean Kendle 11 Янв 2017 в 17:54

У вас есть два раза метод "date.add (1, 'days')";

Попробуй это:

       var date = moment($scope.dt);

        for (var i = 0; i < parseInt($scope.numPagos); i++) {
            var current = date.add(1, 'days');


            $scope.resultados.push({
                'numerodecuota' : i + 1,
                'fechas' : current.format("MM/DD/YYYY"),
                'pagos' : Math.round($scope.importeprestamo / $scope.numPagos + interes),
                'interes' : Math.round(interes),
                'capital' : $scope.importeprestamo / $scope.numPagos,
                'fechaunix' : current.unix()
            }); 

        }// End for loop
1
Thayson Fenandes Do Nascimento 11 Янв 2017 в 18:02