Menentukan Perbezaan Tarikh dalam Tahun, Bulan dan Hari dalam JavaScript
Menentukan perbezaan antara dua tarikh dalam tahun, bulan dan hari boleh mencabar dalam JavaScript disebabkan ketidakkonsistenan dalam penyelesaian yang hanya memberikan perbezaan dalam satu unit (tahun, bulan atau hari) atau ketidaktepatan dalam pengiraan.
Berikut ialah penyelesaian yang lebih komprehensif yang mengambil kira tahun biasa dan lompat serta perbezaan tepat dalam hari antara bulan:
today = new Date(); past = new Date(2010, 05, 01); // Equivalent to June 1, 2010 function calcDate(date1, date2) { // Calculate the difference in milliseconds var diff = Math.floor(date1.getTime() - date2.getTime()); // Convert milliseconds to days var day = 1000 * 60 * 60 * 24; var days = Math.floor(diff / day); // Calculate months and years from days var months = Math.floor(days / 31); var years = Math.floor(months / 12); // Format the message var message = date2.toDateString(); message += " was "; message += days + " days "; message += months + " months "; message += years + " years ago \n"; return message; } console.log(calcDate(today, past)); // Output: Tue Jun 01 2010 was 1143 days 36 months 3 years ago
Penyelesaian ini mengira perbezaan antara dua tarikh dengan menukar perbezaan dalam milisaat kepada hari, dan kemudian seterusnya memperoleh bulan dan tahun daripada jumlah hari.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Perbezaan Antara Dua Tarikh dalam Tahun, Bulan dan Hari Dengan Tepat Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!