Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengira Perbezaan Antara Dua Tarikh dalam Tahun, Bulan dan Hari Menggunakan JavaScript?

Bagaimana untuk Mengira Perbezaan Antara Dua Tarikh dalam Tahun, Bulan dan Hari Menggunakan JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-09 06:45:07301semak imbas

How to Calculate the Difference Between Two Dates in Years, Months, and Days Using JavaScript?

Cara Mengira Perbezaan Antara Dua Tarikh dalam Tahun, Bulan dan Hari dalam JavaScript

Mengira perbezaan antara dua tarikh dalam JavaScript boleh menjadi tugas yang mencabar. Walaupun terdapat pelbagai penyelesaian yang tersedia, mereka sering memberikan perbezaan dalam satu unit (mis., hari, bulan atau tahun) atau mungkin tidak mengambil kira kerumitan kalendar (seperti tahun lompat atau bilangan hari yang berbeza-beza dalam sebulan. ).

Pendekatan Komprehensif

Untuk mengira dengan tepat perbezaan antara dua tarikh, termasuk tahun, bulan dan hari, penyelesaian yang lebih komprehensif diperlukan. Begini cara untuk mencapainya:

  1. Buat Objek Tarikh: Cipta dua objek Tarikh yang mewakili tarikh mula dan tamat. Ingat bahawa parameter bulan dalam Tarikh adalah berasaskan 0, bermakna April ialah bulan 3.
  2. Kira Perbezaan Masa: Tolak tarikh mula daripada tarikh tamat untuk mendapatkan perbezaan masa dalam milisaat .
  3. Tukar kepada Hari: Bahagikan perbezaan masa dengan bilangan milisaat dalam hari (1000 60 60 * 24) untuk mendapatkan bilangan hari.
  4. Kira Bulan dan Tahun: Gunakan pembahagian integer dan modulo untuk menentukan bilangan bulan dan tahun daripada bilangan hari. Untuk bulan, bahagikan dengan 31 (dengan andaian purata panjang bulan). Selama bertahun-tahun, bahagikan dengan 12.
  5. Formatkan Output: Buat mesej rentetan yang merangkumi hari, bulan dan tahun yang dikira dalam Langkah 4.

Sampel Pelaksanaan:

function calcDateDifference(startDate, endDate) {
  const diff = endDate.getTime() - startDate.getTime();
  const day = 1000 * 60 * 60 * 24;

  const days = Math.floor(diff / day);
  const months = Math.floor(days / 31);
  const years = Math.floor(months / 12);

  let message = startDate.toDateString();
  message += " was ";
  message += days + " days ";
  message += months + " months ";
  message += years + " years ago";

  return message;
}

const startDate = new Date(2010, 5, 10); // June 10, 2010
const endDate = new Date();

console.log(calcDateDifference(startDate, endDate));

Fungsi ini akan mengira perbezaan antara tarikh yang diberikan dan keluarkan mesej dalam format: "10 Jun 2010 ialah x hari, y bulan, z tahun lalu."

Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Antara Dua Tarikh dalam Tahun, Bulan dan Hari Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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