我有一个开始日期字符串“20.03.2014”,我想用moment.js添加5天,但我没有在警报窗口中得到新的日期“25.03.2014”。

这里是我的javascript代码:

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add("DD-MM-YYYY", 5);

alert(new_date);

这里是我的jsfiddle: http://jsfiddle.net/jbgUt/1/

我怎么解决这个问题?

我喜欢这个字符串格式“25.03.2014”

希望有人能帮助我。


当前回答

更新日期:2016年1月19日

从2.8.4开始-使用.add(5, 'd')(或.add(5, 'days'))而不是.add('d', 5)

var new_date = moment(startdate, "DD-MM-YYYY").add(5, 'days');

谢谢@Bala提供的信息。

更新:2014年3月21日

这就是你要得到那种格式所必须做的。

这是一把更新过的小提琴

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);

var day = new_date.format('DD');
var month = new_date.format('MM');
var year = new_date.format('YYYY');

alert(day + '.' + month + '.' + year);

原文:2014年3月20日

你没有告诉它如何/添加什么单位,使用-

 var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);

其他回答

如果在函数中添加X时间后出现格式问题,请尝试以下格式:

startDate = moment(startDate)。add(1天).format(“YYYY-MM-DD”);

而不是:

startDate = moment(startDate, “YYYY-MM-DD”).add(1, “days”);

最后一个版本将时间附加到返回的数据,而format方法则不这样做,而是直接返回YYYY-MM-DD。

更新日期:2016年1月19日

从2.8.4开始-使用.add(5, 'd')(或.add(5, 'days'))而不是.add('d', 5)

var new_date = moment(startdate, "DD-MM-YYYY").add(5, 'days');

谢谢@Bala提供的信息。

更新:2014年3月21日

这就是你要得到那种格式所必须做的。

这是一把更新过的小提琴

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);

var day = new_date.format('DD');
var month = new_date.format('MM');
var year = new_date.format('YYYY');

alert(day + '.' + month + '.' + year);

原文:2014年3月20日

你没有告诉它如何/添加什么单位,使用-

 var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);

你可以用不同的格式添加日期:

// Normal adding
moment().add(7, 'days');

// Short Hand
moment().add(7, 'd');

// Literal Object    
moment().add({days:7, months:1});

更多信息请访问Moment.js文档:https://momentjs.com/docs/#/manipulating/add/

var end_date = moment(start_date).clone().add(5, 'days');
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:ss'))

必须格式化,然后再转换成瞬间。