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
Linda HamiltonOriginal
2024-12-10 15:04:11365Durchsuche

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'

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
}

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
}

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);
}

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);
}

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!

Stellungnahme:
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