使用 Moment JS 添加日期

7

遇到了Moment.js对象添加天数的问题:

我正在使用以下代码:

var contractMoment = this.moment(contract,'DD/MM/YYYY')
var start = contractMoment;
var end = contractMoment;

start = contractMoment.add(19, 'days');
end = contractMoment.add(51, 'days');

在我添加之前,contractMoment看起来像这样:

Thu Dec 02 2004 00:00:00 GMT-0600 (Central Standard Time)

在我完成添加且控制台记录开始和结束后,这是我得到的结果:

Thu Dec 02 2004 00:00:00 GMT-0600 (Central Standard Time)

它为每一个返回一个moment对象,那我错过了什么?是否添加的日期在moment对象中被隐藏了?

1个回答

19

add()方法不返回新的moment对象,它修改现有的moment对象并返回它自己。你需要创建副本:

var contractMoment = moment(contract, 'DD/MM/YYYY');
var start = moment(contractMoment).add(19, 'days');
var end = moment(contractMoment).add(51, 'days');

有关演示,请参见http://plnkr.co/edit/PgQuFARXGUB4fxUOxEYN?p=preview


1
+1,另外注意可以使用clone()方法。 - VincenzoC

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