Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengesan Contoh Tarikh Tidak Sah dengan Amanah dalam JavaScript?

Bagaimanakah Saya Boleh Mengesan Contoh Tarikh Tidak Sah dengan Amanah dalam JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-12-10 15:04:11371semak imbas

How Can I Reliably Detect Invalid Date Instances in JavaScript?

Pengesanan Contoh Tarikh Tidak Sah dalam JavaScript

Mengesahkan objek tarikh dalam JavaScript boleh mencabar kerana kewujudan tika "tarikh tidak sah". Objek ini kelihatan sah (instanceof Date returns true) tetapi mewakili tarikh tidak sah. Artikel ini meneroka pelbagai pendekatan untuk mengesan kejadian sedemikian.

Soalan Asal

Kod yang disediakan menunjukkan masalah:

var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'

Disyorkan Penyelesaian

1. Sahkan menggunakan Date.parse()

Date.parse menghuraikan rentetan tarikh dan mengembalikan tarikh atau NaN yang sah jika rentetan itu tidak sah. Ini boleh digunakan untuk mengesahkan rentetan tarikh sebelum mencipta objek Tarikh:

if (Date.parse("foo") === NaN) {
  // invalid date string
}

2. Ujian untuk Nilai Masa NaN

Untuk contoh Tarikh sedia ada, anda boleh menguji nilai masa (getTime() atau valueOf()):

if (isNaN(d.getTime())) {
  // invalid Date object
}

Kaedah ini bergantung pada ECMA -262 spesifikasi, yang menyatakan bahawa objek Tarikh yang tidak sah mempunyai nilai masa NaN.

Diutamakan Kod

Berdasarkan pengesyoran ini, fungsi berikut boleh digunakan untuk mengesahkan contoh Tarikh:

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

Kaedah Alternatif

Jika anda tidak mengambil berat dengan objek Tarikh daripada konteks JS luaran, bentuk yang lebih mudah ini mungkin diutamakan:

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

Nota

Jawapan ini memfokuskan pada pengesahan kejadian Tarikh, tetapi penting untuk ambil perhatian bahawa ia tidak meliputi kesahihan input tarikh itu sendiri (cth. , 2013-13-32).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Contoh Tarikh Tidak Sah dengan Amanah dalam 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