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
Lepaskan: 2024-12-10 15:04:11
asal
391 orang telah melayarinya

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'
Salin selepas log masuk

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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);
}
Salin selepas log masuk
Salin selepas log masuk

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);
}
Salin selepas log masuk
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan