2017-04-20 6 views
0

私のJavaScriptアプリケーションで瞬間を使用し、私のコードは次のようになります(下段) vm.reportMonthが1(Januar)で、vm.reportYearが2017、関数oneMonthBackが呼び出され、previousDateは2016年12月でなければなりませんが、まだ2017年1月です。 私は間違っていますか?Javascriptの瞬間 - 年の遷移での月の減算

function oneMonthBack() { 
    var currentDate = moment().set('month', vm.reportMonth).set('year', vm.reportYear); 
    var previousDate = currentDate.subtract(1, 'months'); 
    var month = previousDate.get('month'); 
    var year = previousDate.year(); 
    vm.reportMonth = month; 
    vm.reportYear = year; 
+0

両方Date' 'のために(JavaScriptでその月に注意してくださいとmomentjs)は0になります。瞬時の参照については、[here](http://momentjs.com/docs/#/get-set/month/)を参照してください。_Monthsはゼロインデックス付けされているので、1月は月です0_ – VincenzoC

答えて

2

私は、減算機能がCURRENTDATE値、previousDateに戻り値を代入する必要はありませんに直接作用していることを考える:

var currentDate = moment().set('month', vm.reportMonth).set('year', vm.reportYear); 
currentDate.subtract(1, 'months'); 
var month = currentDate.get('month'); 
+0

はい、正解 - >:https:// momentjs .com/docs /#/操作/減算/ – Alex