224 votes

Différence en mois entre deux dates en JavaScript

Comment puis-je calculer la différence entre deux objets Date() en JavaScript, tout en ne renvoyant que le nombre de mois de la différence ?

Toute aide serait la bienvenue :)

0 votes

Un mois n'est pas une unité de mesure très précise, car la durée du mois change en fonction du mois dans lequel on se trouve. Si un intervalle dure 30 jours entre janvier et février, c'est moins d'un mois si l'on raisonne en termes de mois de 31 jours, mais plus d'un mois si l'on considère que février compte 28 ou 29 jours.

8 votes

Question pas très bien définie. Est-ce que le 28 février 23:58 au 1er mars 00:01 est un mois ? Ou juste un jour ? Ou seulement trois minutes ? Ou les trois ?

2 votes

La personne qui doit mettre en œuvre cette mesure n'aura probablement pas de réponse, car son responsable n'a aucune idée de ce qu'elle demande :)

0voto

elbik Points 136

J'aime ne pas réinventer la roue, rester simple (je veux dire ne pas se préoccuper du nombre de jours dans les mois, de l'année bissextile, etc. date-fns lib, donc

 npm install -s date-fns

et

const differenceInMonths = require('date-fns/differenceInMonths')

;(() => {
    console.log(differenceInMonths(new Date(`2015-12-01`), new Date(`2013-12-01`)))
    console.log(differenceInMonths(new Date(1582261140000), new Date(`2014-12-01`)))
    console.log(differenceInMonths(new Date(1582261140000), new Date(1573621200000)))
})()

-2voto

Aris Dela Rea Points 7
anyVar = (((DisplayTo.getFullYear() * 12) + DisplayTo.getMonth()) - ((DisplayFrom.getFullYear() * 12) + DisplayFrom.getMonth()));

3 votes

Bien que cet extrait de code puisse être la solution, y compris une explication contribue réellement à améliorer la qualité de votre message. N'oubliez pas que vous répondez à la question pour les lecteurs à venir, et que ces personnes pourraient ne pas connaître les raisons de votre suggestion de code.

0 votes

Il ne sert à rien de poster une réponse qui dépend de fonctions qui ne sont pas expliquées ou définies dans la réponse.

-8voto

Ravi Chinoy Points 53

Une approche consisterait à écrire un simple service Web Java (REST/JSON) qui utilise la bibliothèque JODA.

http://joda-time.sourceforge.net/faq.html#datediff

pour calculer la différence entre deux dates et appeler ce service en javascript.

Cela suppose que votre back-end est en Java.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X