Markus Möller: Datumspruefung

Beitrag lesen

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.