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; }
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
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!