Bagaimanakah anda mengira perbezaan dalam bulan antara dua tarikh dalam JavaScript?

DDD
Lepaskan: 2024-11-12 07:32:02
asal
537 orang telah melayarinya

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

Mengira Perbezaan Bulan antara Tarikh dalam JavaScript

Dalam JavaScript, menentukan perbezaan antara dua objek Date() boleh menjadi proses yang mudah. Walau bagaimanapun, mengekstrak hanya bilangan bulan daripada perbezaan ini memerlukan pertimbangan yang teliti, kerana terdapat pelbagai tafsiran tentang perkara yang membentuk nilai ini.

Untuk memenuhi senario yang berbeza, fungsi JavaScript boleh dibuat yang mengira perbezaan bulan berdasarkan pada kriteria tertentu. Satu pendekatan yang mungkin melibatkan mendapatkan tahun, bulan dan hari bulan daripada kedua-dua tarikh dan menggunakan nilai ini untuk mengira bilangan bulan. Contohnya:

function monthDiff(d1, d2) {
    var months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth();
    months += d2.getMonth();
    return months <= 0 ? 0 : months;
}
Salin selepas log masuk

Fungsi ini menambah perbezaan bulan daripada tahun kepada perbezaan bulan daripada tarikh individu, melaraskan untuk nilai negatif untuk memastikan hasil bukan negatif.

Menggunakan fungsi ini, perbezaan bulan boleh dikira dan dipaparkan seperti berikut:

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
Salin selepas log masuk

Dalam kes ujian ini, fungsi mengira bulan dengan betul perbezaan antara julat tarikh yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah anda mengira perbezaan dalam bulan antara dua tarikh dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan