Ein Datum auf Gültigkeitsbereich prüfen?
Hey, ich hätte eine Frage!
Nämlich möchte ich ein Datum was ich eingebe in ein Input Feld mit dem type date überprüfen.
Das Datum sollte im Bereich (1900 bis heute) liegen!
Als Beispiel: Wenn ich 15.08.1985 eingebe ist das OK. Wenn ich den 14.03.1855 eingebe sollte er sagen das Datum ist zu niedrig. Und wenn das Datum über das heute (aktuelle Datum liegt) dann die Meldung das Datum ist zu hoch.
Dies habe ich schon probiert aber funktioniert leider nicht:
let grenze = new Date('1900-01-01').toLocaleDateString();
let inputDate = new Date (datum.value).toLocaleDateString();
let heute = new Date().toLocaleDateString();
if (InputDate < grenze) {
output2.innerHTML += 'Das Datum ist zu niedrig';
} else if (InputDate > heute) {
output2.innerHTML += 'Das Datum ist zu hoch';
} else {
output2.innerHTML += 'Das Datum ist im Gültigem Bereich';
}
Ich hoffe jemand kann mir bei diesem Problem helfen!
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, JavaScript
HTML-Auszug:
<input id="dateField" type="date">
<p id="output"></p>
JavaScript:
function checkDate() {
const minDate = new Date("1900-01-01");
const maxDate = new Date();
const inputDate = new Date(this.value);
if (inputDate < minDate) {
output.textContent = "Das Datum ist zu niedrig.";
}
else if (inputDate > maxDate) {
output.textContent = "Das Datum ist zu hoch.";
}
else {
output.textContent = "Das Datum ist im gültigem Bereich.";
}
}
const output = document.getElementById("output");
document.getElementById("dateField").addEventListener("input", checkDate);
Korrekturen:
- Die Datumsobjekte können direkt miteinander verglichen werden. Du hast allerdings versucht, Strings gegenseitig aufzuwiegen.
- Beachte außerdem, dass sich JavaScript case-sensitiv verhält. Die Variable InputDate gibt es bei dir daher nicht.
- Sofern in der Ausgabe nur der aktuelle Status als Plaintext stehen soll, reicht das textContent-Property und eine einfache Zuweisung.
- Ich habe alle Bezeichner einheitlich in englischer Sprache gehalten (bei dir ist es ein Sprachmix), was den Code leichter lesbar machen sollte. Da keine der Variablen ihren Wert ändern soll, können sie alle als konstant markiert werden.