Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Bagaimana untuk menilai sama ada tarikh itu munasabah dalam javascript

Bagaimana untuk menilai sama ada tarikh itu munasabah dalam javascript

PHPz
Lepaskan: 2023-04-21 09:29:49
asal
2254 orang telah melayarinya

Dengan perkembangan Internet, semakin banyak laman web atau aplikasi perlu melibatkan pengiraan tarikh atau pengesahan. Dalam JavaScript, menentukan sama ada tarikh adalah munasabah adalah masalah biasa. Jadi, bagaimana untuk menilai sama ada tarikh itu munasabah? Seterusnya, mari kita bincangkan bersama.

1. Format tarikh

Sebelum menilai sama ada tarikh itu munasabah, anda perlu mengesahkan sama ada format tarikh yang dimasukkan adalah betul:

  1. yyyy/MM/dd
  2. yyyy-MM-dd
  3. Yyyy tahun MM bulan hb hari

Di mana, yyyy mewakili tahun, MM mewakili bulan, dan dd mewakili hari.

Antaranya, dua format tarikh pertama adalah lebih biasa dan juga merupakan format tarikh yang paling biasa dalam pembangunan.

2. Penghakiman Tahun Lompat

Apabila menilai sama ada tarikh itu munasabah, anda perlu menilai sama ada tahun itu adalah tahun lompat.

Takrif tahun lompat: Tahun kalendar Gregorian yang merupakan gandaan 4 dan bukan gandaan 100 ialah tahun kalendar Gregorian yang merupakan gandaan 400 juga merupakan tahun lompat. Contohnya: 2000 ialah tahun lompat, tetapi 1900 bukan tahun lompat.

Dalam JavaScript, kod untuk penghakiman tahun lompat adalah seperti berikut:

function isLeapYear(year) {
  return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
Salin selepas log masuk

3 Pengesahan tarikh

Dengan asas untuk penghakiman tahun lompat, anda kemudiannya boleh melaksanakan. pengesahan tarikh Disahkan. Khususnya, untuk rentetan tarikh, ia boleh disahkan seperti berikut:

  1. Gunakan ungkapan biasa untuk menyemak sama ada format tarikh mematuhi spesifikasi
  2. Asingkan tahun, bulan dan hari Ekstrak
  3. untuk mengesahkan bulan, bulan hendaklah antara 1-12
  4. untuk mengesahkan hari, julat hari hendaklah antara 1-31, tetapi mengikut bulan yang berbeza Sekiranya berlaku tahun lompat, julat hari mungkin berbeza

Berikut ialah langkah khusus dan pelaksanaan kod:

Format pengesahan ungkapan biasa

function checkDate(dateStr) {
  var reg = /^(\d{4})(\/|-|\u5e74)(\d{1,2})(\/|-|\u6708)(\d{1,2})/;
  return reg.test(dateStr);
}
Salin selepas log masuk

Ekstrak tahun, bulan dan hari

function getDateInfo(dateStr) {
  var dateArr;
  if (dateStr.indexOf('/') != -1) {
    dateArr = dateStr.split('/');
  } else if (dateStr.indexOf('-') != -1) {
    dateArr = dateStr.split('-');
  } else {
    dateArr = dateStr.split('\u5e74');
    dateArr[1] = dateArr[1].replace('\u6708', '');
    dateArr[2] = dateArr[2].replace('\u65e5', '');
  }
  return {
    year: parseInt(dateArr[0]),
    month: parseInt(dateArr[1]),
    day: parseInt(dateArr[2])
  }
}
Salin selepas log masuk

Pengesahan bulan

function checkMonth(month) {
  return month >= 1 && month <= 12;
}
Salin selepas log masuk

Pengesahan Hari

function checkDay(year, month, day) {
  var maxDay;
  switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
      maxDay = 31;
      break;
    case 4:
    case 6:
    case 9:
    case 11:
      maxDay = 30;
      break;
    case 2:
      if (isLeapYear(year)) {
        maxDay = 29;
      } else {
        maxDay = 28;
      }
      break;
    default:
      return false;
  }
  return day >= 1 && day <= maxDay;
}
Salin selepas log masuk

4. Ringkasan

Melalui penjelasan format tarikh, tahun lompat dan pengesahan tarikh, saya percaya semua orang boleh belajar cara menilai sama ada tarikh itu munasabah. Sudah tentu, ia mungkin sukar untuk dilaksanakan, dan anda perlu berlatih lebih dalam amalan. Semoga artikel ini bermanfaat kepada semua, terima kasih kerana membaca.

Atas ialah kandungan terperinci Bagaimana untuk menilai sama ada tarikh itu munasabah 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