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.