Maison > interface Web > js tutoriel > le corps du texte

Comment calculer la différence en mois entre deux dates en JavaScript ?

DDD
Libérer: 2024-11-12 07:32:02
original
537 Les gens l'ont consulté

How do you calculate the difference in months between two dates in JavaScript?

Calcul de la différence de mois entre les dates en JavaScript

En JavaScript, déterminer la différence entre deux objets Date() peut être un processus simple. Cependant, extraire uniquement le nombre de mois de cette différence nécessite un examen attentif, car il existe de multiples interprétations de ce qui constitue cette valeur.

Pour répondre à différents scénarios, une fonction JavaScript peut être créée qui calcule la différence mensuelle en fonction sur des critères précis. Une approche possible consiste à obtenir l'année, le mois et le jour du mois à partir des deux dates et à utiliser ces valeurs pour calculer le nombre de mois. Par exemple :

function monthDiff(d1, d2) {
    var months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth();
    months += d2.getMonth();
    return months <= 0 ? 0 : months;
}
Copier après la connexion

Cette fonction ajoute la différence en mois entre les années à la différence en mois entre les dates individuelles, en ajustant les valeurs négatives pour garantir un résultat non négatif.

À l'aide de cette fonction, les différences mensuelles peuvent être calculées et affichées comme suit :

function test(d1, d2) {
    var diff = monthDiff(d1, d2);
    console.log(
        d1.toISOString().substring(0, 10),
        "to",
        d2.toISOString().substring(0, 10),
        ":",
        diff
    );
}

test(
    new Date(2008, 10, 4), // November 4th, 2008
    new Date(2010, 2, 12)  // March 12th, 2010
);
// Result: 16

test(
    new Date(2010, 0, 1),  // January 1st, 2010
    new Date(2010, 2, 12)  // March 12th, 2010
);
// Result: 2

test(
    new Date(2010, 1, 1),  // February 1st, 2010
    new Date(2010, 2, 12)  // March 12th, 2010
);
// Result: 1
Copier après la connexion

Dans ces cas de test, la fonction calcule correctement les différences mensuelles entre la date spécifiée gammes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal