将天数添加到Moment对象 (momentjs)

3

我正在尝试找到一种方法,在moment.js中增加天数。我可以根据当前时间使其工作,但仅限于此。以下是我的当前代码:

let start = moment('2017-01-15');
console.log(moment().add(7, 'days'));
console.log(moment(start).add(7, 'days'));

这是我得到的结果:

Moment {_isAMomentObject: true, _isUTC: false, _pf: Object, _locale: Locale, _d: Mon Mar 13 2017 12:21:00 GMT-0400 (Eastern Daylight Time)…}

Moment {_isAMomentObject: true, _i: "2017-01-15", _f: "YYYY-MM-DD", _isUTC: false, _pf: Object…}

所以它可以在moment()上工作,但仅限于此。无论我去哪里查看,这就是我的做法,因此我不知道我缺少了什么。

1
看起来我甚至必须使用 format() 才能看到变化。很奇怪,但它似乎有效。 - Troy Taylor
和你一样:我在他们的Moment.js官网上尝试了一下。如果我执行moment('2017-01-15').add(7, 'days'),它仍然会输出相同的日期,但是如果我执行moment('2017-01-15').add(7, 'days').format(),它将显示添加了天数的新日期,就像预期的那样。我也注意到(就像你一样)_只有当我传递一个日期字符串作为参数时才会发生这种情况_。如果我只是执行moment().add(7, 'days'),它会按预期输出。这可能与Moment.js如何存储日期变量有关? - Deolu A
1个回答

8

您已经创建了moment对象,现在可以使用start变量调用add

let start = moment('2017-01-15');
console.log(moment().add(7, 'days'));
console.log(start.add(7, 'days'));
.as-console-wrapper {
  top: 0;
  max-height: 100% !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>


第二个日期仍然是相同的。 - Troy Taylor
1
@TroyTaylor 不是的。它写着“2017年01月22日”。 - Mr. Polywhirl
1
建议使用start.add(7, 'days')而不是moment(start),但我建议使用 format() 方法来显示 moment 值。 - VincenzoC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接