javascript - 为什么 moment.js subtract 方法不起作用?

标签 javascript momentjs

我正在尝试使用 moment.js 将给定日期减去 7 天

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

当我检查 nowoneWeekAgo 的值都具有相同的内容时。

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)}

为什么会这样?我该如何解决? 谢谢。

最佳答案

momentjs的私有(private)变量没那么简单

_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'));

关于javascript - 为什么 moment.js subtract 方法不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33235651/

相关文章:

javascript - 使用时刻来格式化与现在相关的时间

momentjs - Chart.js - 折线图中的垂直十字准线(随鼠标移动的垂直注释)

javascript - 使用 Angularjs 过滤分组内容时隐藏分组标题

javascript - 在数组中查找两个重复值的最佳技术是什么?

javascript - 使用 Javascript 动态创建 HTML 表单

javascript - 实现 $(el).trigger ('my-event' , {some : 'data' }); in native js

JavaScript:无法启动 moment.js

javascript - 如何让 arbor.js 在 Internet Explorer 上运行?

javascript - 在 KNockout 中绑定(bind)文本框

javascript - 如何通过一次调用 format() 格式化 04Apr