Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengesahkan Contoh Tarikh JavaScript dengan Boleh Dipercaya?

Bagaimanakah Saya Boleh Mengesahkan Contoh Tarikh JavaScript dengan Boleh Dipercaya?

Patricia Arquette
Patricia Arquetteasal
2024-12-11 02:06:10277semak imbas

How Can I Reliably Validate JavaScript Date Instances?

Mengesahkan Kesahihan Contoh Tarikh dalam JavaScript

Menentukan kesahihan contoh Tarikh dalam JavaScript boleh mencabar. Mari kita terokai masalah "tarikh tidak sah" dan cari penyelesaian untuk mengesan objek Tarikh tidak sah dengan pasti:

Objek Tarikh ialah binaan JavaScript yang mewakili seketika tertentu dalam masa. Isu timbul apabila membuat tika Tarikh daripada rentetan tarikh tidak sah, seperti ditunjukkan dalam contoh di bawah:

var d = new Date("foo");

Kod ini menghasilkan tika "Tarikh Tidak Sah", yang merupakan objek jenis dan diwarisi daripada prototaip Tarikh. Walau bagaimanapun, Object.prototype.toString.call(d) mengembalikan "[object Date]", dan d instanceof Date dinilai kepada benar.

Penyelesaian:

Berikut ialah pendekatan mudah untuk menyemak contoh Tarikh yang sah:

if (Object.prototype.toString.call(d) === "[object Date]") {
  if (isNaN(d.getTime())) {
    // Invalid Date
  } else {
    // Valid Date
  }
} else {
  // Not a Date object
}

Kaedah ini memastikan bahawa kejadian ialah objek Tarikh dan nilai masanya bukan NaN. Jika salah satu syarat gagal, tika Date dianggap tidak sah.

Kemas kini [2018-05-31]:

Untuk kes di mana objek Tarikh daripada konteks luaran bukan kebimbangan, fungsi pengesahan yang lebih mudah boleh digunakan:

function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}

Nota [2021-02-01]:

Adalah penting untuk ambil perhatian bahawa terdapat perbezaan antara "tarikh tidak sah" dan "objek tarikh tidak sah". Jawapan ini memfokuskan pada mengesahkan kejadian Tarikh, bukan rentetan input tarikh.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Contoh Tarikh JavaScript dengan Boleh Dipercaya?. 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