Hi,
Ich muss mit einem Javascript 2 Daten prüfen. Der benutzer kann ein start Datum und ein enddatumd eingeben. Jetzt sollen die Daten einzeln geprüfet werden das man zum beispiel nicht den 31.2. eingeben kann und das ganze auch unter Berücksichtigung von Schaltjahren. Wenn Start- und Enddatum korrekt sind soll geprüt werden ob das Startdatum auch vor dem Enddatum liegt. Mein script funktioniert eigentlich soweit nur sobald das jahr der beiden daten gleich und der monat auch gleich ist gibt es probleme. als Beispiel:
Startdatum: 29.2.2000
Enddatum: 4.2.2000
Hier sagt das script es wäre ein korrektes Datum. Vielleicht kann mir hier jemand helfen. Ich poste nur das javascript. Die daten kommen aus drop down menus. Weiterhin muss das Script nur im Internetexplorer funktionieren
Script:
Ich muss mit einem Javascript 2 Daten prüfen. Der benutzer kann ein start Datum und ein enddatumd eingeben. Jetzt sollen die Daten einzeln geprüfet werden das man zum beispiel nicht den 31.2. eingeben kann und das ganze auch unter Berücksichtigung von Schaltjahren. Wenn Start- und Enddatum korrekt sind soll geprüt werden ob das Startdatum auch vor dem Enddatum liegt. Mein script funktioniert eigentlich soweit nur sobald das jahr der beiden daten gleich und der monat auch gleich ist gibt es probleme. als Beispiel:
Startdatum: 29.2.2000
Enddatum: 4.2.2000
Hier sagt das script es wäre ein korrektes Datum. Vielleicht kann mir hier jemand helfen. Ich poste nur das javascript. Die daten kommen aus drop down menus. Weiterhin muss das Script nur im Internetexplorer funktionieren
Script:
Code:
<script type="text/javascript">
<!--
function chk_start_end(day,month,year) {
var date_check = true;
var year_check = false;
if ((year % 400) == 0)
{
year_check = true;
}
else if ((year % 100) == 0)
{
year_check = false;
if ((year % 4) == 0)
{
year_check = true;
}
}
switch(month)
{
case "4":
case "6":
case "9":
case "11":
if(day > 30)
{
date_check = false;
}
break;
case "2":
if(year_check == true)
{
if(day > 29)
{
date_check = false;
}
}
else
{
if(day > 28)
{
date_check = false;
}
}
break;
} // end switch / case
if(date_check == false)
{
return false;
}
else
{
return true;
}
} // end chk_start_end( ) function
function chkdate() {
var start_day = Formular.start_day.value;
var start_month = Formular.start_month.value;
var start_year = Formular.start_year.value;
var end_day = Formular.end_day.value;
var end_month = Formular.end_month.value;
var end_year = Formular.end_year.value;
var date_start_end = true;
if(chk_start_end(start_day,start_month,start_year) == false) { date_start_end = false; }
if(chk_start_end(end_day,end_month,end_year) == false) { date_start_end = false; }
if(date_start_end == true)
{
if (end_year > start_year)
{
date_start_end = true;
}
else if (end_year == start_year)
{
if (end_month > start_month)
{
date_start_end = true;
}
else if(end_month == start_month)
{
if (end_day > start_day)
{
date_start_end = true;
}
else
{
date_start_end = false;
}
}
else
{
date_start_end = false;
}
}
else
{
date_start_end = false;
}
}
document.write(date_start_end);
if(date_start_end == true)
{ alert("DEBUG: Date valid -> submit"); }
else { alert("the date is not valid"); }
} //end of function