mark chopin: Datum auf Gültigkeit prüfen.

Beitrag lesen

Ich habe ein kleines Skript, dass die Datum- und die Uhrzeiteingabe
sehr erleichert (es prüft allerdings nicht die Gültigkeit, wie z.B.
31.2.2005).

Mich hat es immer gestört, dass man Datumsangaben in einem
Schema (DD.MM.JJJJ) angeben muss, so dass ich zwei Funktionen
geschrieben habe, die (fast) alles automatisch korrigieren.

Z.B.:
  Für 12.02.2005 kann der Benutzer folgendes eingeben:
  12 2, 12.2, 12x2, 12 (wenn der aktuelle Monat der Februar ist),
  12.2.2005, 12 2 05 und sogar 12 2 5.

Aufgrufen werden die Funktionen mit dem Objekt, dessen Inhalt
korigiert werden sollen:

  
function correctDate(pObject)  
{  
 if (pObject.value==""){return false;}  
  
 var date = new Date();  
 var day = date.getDate();  
 var month = date.getMonth()+1;  
 var year = date.getFullYear();  
  
 if (day.toString().length==1){day = "0"+day;}  
 if (month.toString().length==1){;month = "0"+month;}  
  
 var cDate = pObject.value.replace(/([a-zA-Z \\-\\:\\_\\,\\;])/g,".")+"..";  
 cDate = cDate.split(".");  
  
 var cDay = cDate[0];  
 var cMonth = cDate[1];  
 var cYear = cDate[2];  
  
 if (cDay.length==0){cDay = day}  
 if (cDay.length==1){cDay = "0"+cDay}  
 if (cMonth.length==0){cMonth = month}  
 if (cMonth.length==1){cMonth = "0"+cMonth}  
 if (cYear.length==0){cYear = year}  
 if (cYear.length==1){cYear = "200"+cYear}  
 if (cYear.length==2){cYear = "20"+cYear}  
 if (cYear.length==3){cYear = "200"+cYear.substr(2,1)}  
  
 cDay = cDay.toString().substr(0,2);  
 cMonth = cMonth.toString().substr(0,2);  
 cYear = cYear.toString().substr(0,4);  
  
 if (cDay<1 || cDay>31){cDay = "xx"}  
 if (cMonth<1 || cMonth>12){cMonth = "xx"}  
 if (cYear<2000 || cYear>2100){cYear = "xxxx"}  
  
 pObject.value = cDay+"."+cMonth+"."+cYear;  
}  
  
function correctTime(pObject)  
{  
 if (pObject.value==""){return false;}  
  
 if (pObject.value.length==3)  
 {  
  pObject.value = pObject.value.substr(0,2)+":"+pObject.value.substr(2,2)+"0";  
  return false;  
 }  
 if (pObject.value.length==4)  
 {  
  pObject.value = pObject.value.substr(0,2)+":"+pObject.value.substr(2,2);  
  return false;  
 }  
  
 var cTime = pObject.value.replace(/([a-zA-Z \\-\\:\\_\\,\\;])/g,":")+":";  
 cTime = cTime.split(":");  
 var cHour = cTime[0];  
 var cMinute = cTime[1];  
  
 if (cHour.length==1){cHour = "0"+cHour}  
 if (cMinute.length==0){cMinute = "00"}  
 if (cMinute.length==1){cMinute = "0"+cMinute}  
  
 cHour = cHour.substr(0,2);  
 cMinute = cMinute.substr(0,2);  
  
 if (cHour==24){cHour = "00"}  
 if (cHour<0 || cHour>23){cHour = "xx"}  
 if (cMinute<0 || cMinute>59){cMinute = "xx"}  
  
 pObject.value = cHour+":"+cMinute;  
}  

Bei Fragen einfach nochmal melden.