momentJS chaîne de date ajouter 5 jours


154

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 n'obtiens 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);

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

Comment puis-je resoudre ceci ?

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

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

Réponses:


326

MISE À JOUR: 19 janvier 2016

À partir du moment 2.8.4 - utiliser .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: 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: 20 mars 2014

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

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

je veux voir ce format "25.03.2014" dans la fenêtre d'alerte comment puis-je l'implémenter?
Dave

2
À partir du moment 2.8.4, je peux voir un message obsolète avec add ('days', 5). Utilisez plutôt add (5, 'days').
Bala

1
La syntaxe correcte: moment (). Add (5, 'days'). Format ("J / M / YYYY") Vous pouvez regarder un peu ici: momentjs.com/docs/#/manipulating/add
Costas Bakoulias

16

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

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

7
Ouais c'est bizarre. Lors de l'enregistrement moment(startdate).add(5, 'days')de la console que vous obtenez Moment {_isAMomentObject: true, _i: "[the original date]",}, j'étais sûr que la addméthode ne fonctionnait pas. Après avoir passé quelques minutes, j'ai réalisé que la méthode fonctionnait, car si vous ouvrez l'objet, vous obtenez Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date]... La date a en fait changé (vous obtiendrez le résultat correct avec moment(startdate).add(5, 'days').format('YYYYMMDD')), mais il est déroutant qu'il semble que la date n'ait pas t changé. : - |
Gilad Barner

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

doit formater puis convertir à nouveau en moment.


Vous m'avez sauvé beaucoup de minutes
:)



3
  1. ajouter https://momentjs.com/downloads/moment-with-locales.js à votre page 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 puis
  3. var dueDate = moment().add(15,'days').format('DD-MM-YYYY')// to add 15 days to current date..

les points 2 et 3 utilisent dans votre code jquery ...


2

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

2

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)

0

actualisé:

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

alert(new_date)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.