ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で 2 つの日付間の月の差をどのように計算しますか?

JavaScript で 2 つの日付間の月の差をどのように計算しますか?

DDD
リリース: 2024-11-12 07:32:02
オリジナル
608 人が閲覧しました

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

JavaScript での日付間の月の差の計算

JavaScript では、2 つの Date() オブジェクト間の差を求めるのは簡単なプロセスです。ただし、この値の構成要素には複数の解釈があるため、この差から月数のみを抽出するには慎重な検討が必要です。

さまざまなシナリオに対応するために、月の差に基づいて計算する JavaScript 関数を作成できます。特定の基準に基づいて。考えられるアプローチの 1 つは、両方の日付から年、月、日を取得し、これらの値を使用して月数を計算することです。例:

function monthDiff(d1, d2) {
    var months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth();
    months += d2.getMonth();
    return months <= 0 ? 0 : months;
}
ログイン後にコピー

この関数は、年の月の差を個々の日付の月の差に加算し、負の値を調整して負でない結果を保証します。

この関数を使用すると、次のように月の差を計算して表示できます:

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
ログイン後にコピー

これらのテスト ケースでは、関数は指定された日付範囲間の月の差を正しく計算します。

以上がJavaScript で 2 つの日付間の月の差をどのように計算しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート