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 サイトの他の関連記事を参照してください。