Heim > Web-Frontend > js-Tutorial > Wie kann ich ungültige Datumsinstanzen in JavaScript zuverlässig erkennen?

Wie kann ich ungültige Datumsinstanzen in JavaScript zuverlässig erkennen?

Linda Hamilton
Freigeben: 2024-12-10 15:04:11
Original
366 Leute haben es durchsucht

How Can I Reliably Detect Invalid Date Instances in JavaScript?

Erkennung ungültiger Datumsinstanzen in JavaScript

Die Validierung von Datumsobjekten in JavaScript kann aufgrund der Existenz von „ungültigen Datumsinstanzen“ eine Herausforderung darstellen. Diese Objekte scheinen gültig zu sein (instanceof Date gibt „true“ zurück), stellen jedoch ungültige Datumsangaben dar. In diesem Artikel werden verschiedene Ansätze zur Erkennung solcher Fälle untersucht.

Ursprüngliche Frage

Der bereitgestellte Code veranschaulicht das Problem:

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'
Nach dem Login kopieren

Empfohlen Lösungen

1. Validieren mit Date.parse()

Date.parse analysiert eine Datumszeichenfolge und gibt ein gültiges Datum oder NaN zurück, wenn die Zeichenfolge ungültig ist. Dies kann verwendet werden, um Datumszeichenfolgen vor dem Erstellen eines Datumsobjekts zu validieren:

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

2. Auf NaN-Zeitwert testen

Für vorhandene Date-Instanzen können Sie den Zeitwert testen (getTime() oder valueOf()):

if (isNaN(d.getTime())) {
  // invalid Date object
}
Nach dem Login kopieren

Diese Methode basiert auf ECMA -262-Spezifikation, die angibt, dass ein ungültiges Datumsobjekt einen NaN-Zeitwert hat.

Bevorzugt Code

Basierend auf diesen Empfehlungen kann die folgende Funktion zur Validierung von Datumsinstanzen verwendet werden:

function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}
Nach dem Login kopieren
Nach dem Login kopieren

Alternative Methode

If Wenn Sie sich nicht mit Datumsobjekten aus externen JS-Kontexten befassen, ist dies möglicherweise eine einfachere Form bevorzugt:

function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}
Nach dem Login kopieren
Nach dem Login kopieren

Hinweis

Diese Antwort konzentriert sich auf die Validierung von Datumsinstanzen, es ist jedoch wichtig zu beachten, dass sie nicht die Gültigkeit der Datumseingabe selbst abdeckt (z. B. , 32.13.2013).

Das obige ist der detaillierte Inhalt vonWie kann ich ungültige Datumsinstanzen in JavaScript zuverlässig erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage