2015-10-20 81 views
1

我試圖到7天減去某個指定日期使用moment.js爲什麼moment.js減法不起作用?

var date ="2015-10-19"; 
var now = moment(date); 
var oneWeekAgo = moment(date).subtract(7,'days'); 

當我檢查的now值和oneWeekAgo具有相同的內容兩者。

Moment {_isAMomentObject: true, _i: "2015-10-19", _f: "YYYY-MM-DD ", _isUTC: false, _pf: Object…} 

但是,如果我減去7天到當前時間它的作品。

var oneWeekAgo = moment().subtract(7,'days');

我注意到,實例化的無參數瞬間改變自己的結構,在_d屬性,而不是_i存儲日期。

Moment {_isAMomentObject: true, _isUTC: false, _pf: Object, _locale: Locale, _d: Tue Oct 13 2015 13:34:50 GMT+0200 (Hora de verano romance)} 

爲什麼會發生?我該如何解決它? Thanx。

回答

10

momentjs的私有變量並不那麼簡單。

_i只是您用來實現momentjs對象的字符串。這不是日期的當前值。

var date = "2015-10-19"; 
var now = moment(date); 
var oneWeekAgo = moment(date).subtract(7, 'days'); 

// 2015 10 19 
console.log(now.format('YYYY MM DD')); 

// 2015 10 12 
console.log(oneWeekAgo.format('YYYY MM DD')); 
+0

缺少')'關閉console.log';-)' – Finrod

+0

糟糕。感謝那。 – Magus

+1

感謝它的工作! – Sapikelio