momentJS日期字符串添加5天

Dav*_*ave 122 javascript add days momentjs

我有一个开始日期字符串"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);
Run Code Online (Sandbox Code Playgroud)

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

我怎么解决这个问题?

我喜欢这种字符串格式"25.03.2014"

希望可以有人帮帮我.

Vto*_*one 272

更新日期: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');
Run Code Online (Sandbox Code Playgroud)

感谢@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);
Run Code Online (Sandbox Code Playgroud)

原文:2014年3月20日

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

 var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);
Run Code Online (Sandbox Code Playgroud)

  • 从时刻2.8.4开始,我可以通过添加('天',5)看到已弃用的消息.请改用添加(5,'天'). (2认同)
  • 正确的语法: moment().add(5, 'days').format("D/M/YYYY") 您可以在这里看一会儿:https://momentjs.com/docs/#/manipulated/add/ (2认同)

Sid*_*chu 19

如果我们想使用当前日期或当前日期:

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

Run Code Online (Sandbox Code Playgroud)


Leo*_*uli 12

函数add()返回旧日期,但更改原始日期:)

startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
new_date.add(5, 'days');
alert(new_date);
Run Code Online (Sandbox Code Playgroud)

  • 是的,这很奇怪。在控制台中检查`moment(startdate).add(5,'days')`时,您会得到`Moment {_isAMomentObject:true,_i:“ [原始日期]”,}`,并且我确定`add`方法不起作用。花了几分钟后,我意识到该方法可以工作了,因为如果打开对象,您将获得`Moment _d:[添加日期] _f:“ YYYY-MM-DDTHH:mm:ss” _i:[原始日期]实际上已经更改了日期(您将获得`moment(startdate).add(5,'days')。format('YYYYMMDD')`的正确结果),但看起来似乎令人困惑日期没有改变。:-| (2认同)

Sor*_*tas 12

var end_date = moment(start_date).clone().add(5, 'days');
Run Code Online (Sandbox Code Playgroud)

  • 真正有帮助的是“clone()” (2认同)

Ben*_*Ben 11

moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))
Run Code Online (Sandbox Code Playgroud)

必须格式化然后再转换为时刻.

  • 你节省了我很多时间:) (2认同)

Isi*_*nez 10

您可以添加不同格式的天数:

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

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

// Literal Object    
moment().add({days:7, months:1});
Run Code Online (Sandbox Code Playgroud)

在Moment.js文档中查看更多相关信息:https://momentjs.com/docs/#/manipulating/add/


Mit*_*jol 6

如果您在向函数添加 X 时间后最终遇到格式问题,请尝试以下格式:

startDate = moment(startDate).add(1, "days").format("YYYY-MM-DD");

代替:

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

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