web-dev-qa-db-fra.com

momentJS chaîne de date ajouter 5 jours

j'ai une chaîne de date de début "20.03.2014" et je veux ajouter 5 jours à cela avec moment.js mais je ne reçois pas la nouvelle date "25.03.2014" dans la fenêtre d'alerte.

voici mon code javascript:

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

alert(new_date);

voici mon jsfiddle: http://jsfiddle.net/jbgUt/1/

Comment puis-je résoudre ça ?

J'aime ce format de chaîne "25.03.2014"

J'espère que quelqu'un pourra m'aider.

79
Dave

MISE À JOUR: 19 janvier 2016

À partir du moment 2.8.4 - utilisez .add(5, 'd') (ou .add(5, 'days')) au lieu de .add('d', 5)

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

Merci @Bala pour l'information.

MISE À JOUR: le 21 mars 2014

C'est ce que vous devez faire pour obtenir ce format.

Voici un violon mis à jour

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

ORIGINAL: le 20 mars 2014

Vous ne lui dites pas comment/quelle unité ajouter. Utilisation -

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

La fonction add () renvoie l'ancienne date mais modifie la date d'origine :)

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

Vous pouvez ajouter des jours dans différents formats:

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

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

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

Plus d'informations à ce sujet sur les documents Moment.js: https://momentjs.com/docs/#/manipulating/add/

6
Isidro Martínez
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))

doit formater puis convertir à nouveau moment.

6
Ben

Pour obtenir un exemple de travail réel qui renvoie ce à quoi on pourrait s'attendre:

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)
1
Pytth

Vous pouvez réduire ce qu'ils ont dit en quelques lignes de code:

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);
1
Marco Barcellos

var end_date = moment (start_date) .clone (). add (5, 'jours');

0
Sorin Trimbitas