dateJS строка даты добавить 5 дней

154

У меня есть строка даты начала «20.03.2014», и я хочу добавить к этому 5 дней с помощью moment.js, но я не получаю новую дату «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"

Надеюсь, кто-нибудь может мне помочь.

Дейв
источник

Ответы:

326

ОБНОВЛЕНО: 19 января 2016 г.

На момент 2.8.4 - использовать .add(5, 'd')(или .add(5, 'days')) вместо.add('d', 5)

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

Спасибо @Bala за информацию.

ОБНОВЛЕНО: 21 марта 2014 г.

Это то, что вам нужно сделать, чтобы получить этот формат.

Вот обновленная скрипка

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);

ОРИГИНАЛ: 20 марта 2014 г.

Вы не говорите, как / какую единицу добавить. Используйте -

 var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);
VtoCorleone
источник
я хочу видеть этот формат "25.03.2014" в окне предупреждения, как я могу это реализовать?
Дейв
2
На момент 2.8.4 я вижу устаревшее сообщение с надписью ('days', 5). Вместо этого используйте add (5, 'days').
Бала
1
Правильный синтаксис: moment (). Add (5, 'days'). Format ("D / M / YYYY"). Некоторое
Костас Бакулиас,
16

Функция add () возвращает старую дату, но меняет оригинальную дату :)

startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
new_date.add(5, 'days');
alert(new_date);
Леонард Паули
источник
7
Да, это странно. При проверке 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/#/manipulation/add/.

Исидро Мартинес
источник
6
var end_date = moment(start_date).clone().add(5, 'days');
Сорин Тримбитас
источник
Это то, clone()что действительно помогает здесь
ChrisW
3
  1. добавьте https://momentjs.com/downloads/moment-with-locales.js на свою HTML-страницу
  2. var todayDate = moment().format('DD-MM-YYYY');//to get today date 06/03/2018 if you want to add extra day to your current date затем
  3. var dueDate = moment().add(15,'days').format('DD-MM-YYYY')// to add 15 days to current date..

точки 2 и 3 используются в вашем коде jquery ...

Камала Канта дас
источник
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)
Pytth
источник
0

обновлено:

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

alert(new_date)
nishith
источник