2017-03-06 141 views
2

我试图找到一种方法将时间添加到片刻。根据当前时间,我可以让它工作一段时间,但就是这样。在这里我当前的代码:将时间添加到Moment对象(momentjs)

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

这是得到的结果是:

时刻{_isAMomentObject:真,_isUTC:假的,_pf:对象,_locale: 区域设置,_D:周一年03月13 2017年12时21分00秒格林尼治标准时间0400(东部夏令时间 )...}

时刻{_isAMomentObject:真,_i: “2017年1月15日”,_f: “YYYY-MM-DD”, _isUTC: false,_pf:Object ...}

所以它适用于时刻(),但不是那样。到处都是我看,这就是我应该这样做,所以我不知道我错过了什么。

+1

所以看起来我必须使用格式(),甚至看到的变化。奇怪的,但它似乎工作。 –

+0

和我一样:我在他们的Moment.js自己的[网站](https://momentjs.com/docs/)上试了一下。如果我做了'moment'('2017-01-15')。add(7,'days')'它仍然会输出相同的日期,但是如果我做了'moment('2017-01-15')。add 7,'days')。format()'它会按照预期显示添加日期的新日期。 我也注意到(就像你那样),只有当我传递一个日期字符串作为参数时才会发生这种情况。如果我刚刚做了'moment()。add(7,'days')'它会按预期输出。必须与Moment.js如何存储日期变量有关? –

回答

5

您已经创建了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>

+0

第二次约会仍然是一样的。 –

+1

@TroyTaylor不,它不是。它说,“2017-01-22”。 –

+1

用于'start.add(7,'days')'而不是'moment(start)',但我建议使用['format()'](http://momentjs.com/docs/#/显示/格式/)方法来显示时间值。 – VincenzoC