2017-01-11 2 views
0

Вот мой текущий MomentJS код:момент JS - Добавляет два дня

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

И так далее.

ответ

1

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

После того, как здесь

'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>

3

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

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() 
}); 
1

Есть ли у вас в два раза метод "date.add (1, 'дни')";

попробовать это:

 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 

 Смежные вопросы

  • Нет связанных вопросов^_^