Datumspruefung
Manu
- javascript
Moin moin,
bin absolute beginner im Bereich JavaScript und hab folgende Frage:
Ich soll eine Funktion zur Datumsprüfung schreiben.
Dabei werden in Optionsfelder Angaben für Tag, Monat, Jahr gemacht.
Nun soll geprüft werden, ob
1. es sich um ein korrektes Datum handelt(Monate mit 30,31,28 Tagen)
2. Schaltfjahrprüfung.
Hat jemand schon so eine Funktion geschrieben bzw. wies wo ich eine fingen kann, um das Rad nicht mehr neu zu erfinden??
Sind irgendwelche Bedingungen an eine Verwendung bereits bestehender Funktionen geknüpft?
Many thanks!!
Hallo!
Ich habe mal soetwas geschrieben. Hier der passende Code-Schnippsel:
----------------------
function _isValidDate(field) {
var txt = document.vform.elements[field].value;
var day = txt.substring(0, 2);
var month = txt.substring(3, 5);
var year = txt.substring(6, 10);
// Day
var daysInMonth = new Array (31, _getDaysInFebruary(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
if ((day > daysInMonth[month-1]) || (day < 1)) {
return false;
}
// Month
if ((month < 1) || (month > 12)) {
return false;
}
return true;
}
function _getDaysInFebruary(year) {
if (
(year % 4 == 0) &&
(
(year % 100 != 0) ||
(year % 400 == 0)
)
) {
return 29;
}
return 28;
}
----------------------
Übergeben wird der Name eines Feldes, in dem das Datum steht. Man kann natürlich auch direkt das Datum als String übergeben.
ACHTUNG: Ich kann bei meiner Verwendung davon ausgehen, dass das Datum immer in der Form:
TT.MM.JJJJ oder TT/MM/JJJJ
vorliegt. Also z.B. 01.09.2001.
1.9.01 würde da nicht gehen. Dazu müsstest du diese Zeilen ändern:
var day = txt.substring(0, 2);
var month = txt.substring(3, 5);
var year = txt.substring(6, 10);
Die momentan "hartverdrahteten" Werte 2, 5, 10 anpassen. In Selfhtml unter JavaScript->String->indexOf findest du die passenden Befehle.
Sind irgendwelche Bedingungen an eine Verwendung bereits bestehender Funktionen geknüpft?
Nö, kannste verwenden, verändern, verbreiten wie du Lust hast.
Moin!
Ich soll eine Funktion zur Datumsprüfung schreiben.
Dabei werden in Optionsfelder Angaben für Tag, Monat, Jahr gemacht.
Nun soll geprüft werden, ob
- es sich um ein korrektes Datum handelt(Monate mit 30,31,28 Tagen)
- Schaltfjahrprüfung.
Wenn du mal genauer definierst, was du dir unter diesen Anforderungen vorstellst.
Ansonsten als Tipp: Schau dir das Date-Objekt von Javascript mal genauer an.
Anwendungstipp: Generiere mit dem eingegebenen Datum ein neues Datumsobjekt. Javascript wird bei falschen Angaben das Datum dieses Objektes anpassen (der 32.12.2002 wird z.B. zum 1.1.2003). Hinterher prüfst du das Datum des Objektes auf Gleichheit mit dem eingegebenen Datum. Wenn beide gleich sind, ist das eingegebene Datum ganz offensichtlich ein tatsächlich existierendes. Andernfalls ist es als falsch zurückzuweisen.
http://selfhtml.teamone.de/javascript/objekte/date.htm
- Sven Rautenberg