2017-04-20 105 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

請注意在JavaScript當月(均爲'Date'和momentjs)是0索引。請參閱[這裏](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 /文檔/#/操縱/減/ – Alex