momentJS日期字符串添加5天


154

我有一个开始日期字符串“ 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”

希望可以有人帮帮我。

Answers:


325

更新日期: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);

我想在警报窗口中看到此格式“ 25.03.2014”,我该如何实现呢?
戴夫

2
从2.8.4版本开始,我可以看到带有add('days',5)的已弃用消息。使用add(5,'days')代替。
巴拉

正确的语法:moment()。add(5,'days')。format(“ D / M / YYYY”)您可以在这里看一会儿:momentjs.com/docs
Costas Bakoulias

16

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

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

5
是的,这很奇怪。moment(startdate).add(5, 'days')在控制台中检查时,您会收到Moment {_isAMomentObject: true, _i: "[the original date]",},并且我确定该add方法无效。花了几分钟后,我意识到该方法已经可以使用了,因为如果打开对象Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date],则日期实际上已经更改了(您将获得正确的结果moment(startdate).add(5, 'days').format('YYYYMMDD')),但是令人困惑的是,似乎日期还没有。改变了。:-|
吉拉德·巴纳

14
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))

必须格式化,然后再次转换为矩。


您为我节省了很多时间
:)

12

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

// 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/




2

您可以通过几行代码来减少他们所说的内容:

var nowPlusOneDay = moment().add('days', 1);
var nowPlusOneDayStr = nowPlusOneDay.format('YYYY-MM-DD');

alert('nowPlusOneDay Without Format(Unix Date):'+nowPlusOneDay);
alert('nowPlusOneDay Formatted(String):'+nowPlusOneDayStr);

2

为了获得一个实际的工作示例,该示例将返回期望的结果:

var startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
var thing = new_date.add(5, 'days').format('DD/MM/YYYY');
window.console.log(thing)

0

更新:

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

alert(new_date)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.