Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/02/2005, 07:36
Avatar de Chuty
Chuty
 
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 2
TomaHawkk

En los Faqs, tienes varios ejemplos
http://www.forosdelweb.com/showthrea...856#post326199


Código PHP:
<html
<
head
  <
script language="JavaScript"

   function 
esDigito(sChr){ 
    var 
sCod sChr.charCodeAt(0); 
    return ((
sCod 47) && (sCod 58)); 
   } 

   function 
valSep(oTxt){ 
    var 
bOk false
    
bOk bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-")); 
    
bOk bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/")); 
    return 
bOk
   } 

   function 
finMes(oTxt){ 
    var 
nMes parseInt(oTxt.value.substr(32), 10); 
    var 
nAno parseInt(oTxt.value.substr(6), 10); 
    var 
nRes 0
    switch (
nMes){ 
     case 
1nRes 31; break; 
     case 
2nRes 28; break; 
     case 
3nRes 31; break; 
     case 
4nRes 30; break; 
     case 
5nRes 31; break; 
     case 
6nRes 30; break; 
     case 
7nRes 31; break; 
     case 
8nRes 31; break; 
     case 
9nRes 30; break; 
     case 
10nRes 31; break; 
     case 
11nRes 30; break; 
     case 
12nRes 31; break; 
    } 
    return 
nRes + (((nMes == 2) && (nAno 4) == 0)? 10); 
   } 

   function 
valDia(oTxt){ 
    var 
bOk false
    var 
nDia parseInt(oTxt.value.substr(02), 10); 
    
bOk bOk || ((nDia >= 1) && (nDia <= finMes(oTxt))); 
    return 
bOk
   } 

   function 
valMes(oTxt){ 
    var 
bOk false
    var 
nMes parseInt(oTxt.value.substr(32), 10); 
    
bOk bOk || ((nMes >= 1) && (nMes <= 12)); 
    return 
bOk
   } 

   function 
valAno(oTxt){ 
    var 
bOk true
    var 
nAno oTxt.value.substr(6); 
    
bOk bOk && ((nAno.length == 2) || (nAno.length == 4)); 
    if (
bOk){ 
     for (var 
0nAno.lengthi++){ 
      
bOk bOk && esDigito(nAno.charAt(i)); 
     } 
    } 
    return 
bOk
   } 

   function 
valFecha(oTxt){ 
    var 
bOk true
    if (
oTxt.value != ""){ 
     
bOk bOk && (valAno(oTxt)); 
     
bOk bOk && (valMes(oTxt)); 
     
bOk bOk && (valDia(oTxt)); 
     
bOk bOk && (valSep(oTxt)); 
     return 
bOk
    } 
   } 

   function 
fechaMayorOIgualQue(fec0fec1){ 
    var 
bRes false
    var 
sDia0 fec0.value.substr(02); 
    var 
sMes0 fec0.value.substr(32); 
    var 
sAno0 fec0.value.substr(64); 
    var 
sDia1 fec1.value.substr(02); 
    var 
sMes1 fec1.value.substr(32); 
    var 
sAno1 fec1.value.substr(64); 
    if (
sAno0 sAno1bRes true
    else { 
     if (
sAno0 == sAno1){ 
      if (
sMes0 sMes1bRes true
      else { 
       if (
sMes0 == sMes1
        if (
sDia0 >= sDia1bRes true
      } 
     } 
    } 
    return 
bRes
   } 

   function 
valFechas(){ 
    var 
bOk false
    if (
valFecha(document.f1.fec0)){ 
     if (
valFecha(document.f1.fec1)){ 
      if (
fechaMayorOIgualQue(document.f1.fec1document.f1.fec0)){ 
       
bOk true
       
alert("Ok"); 
      } else { 
       
alert("Rango inválido"); 
       
document.f1.fec1.focus(); 
      } 
     } else { 
      
alert("Fecha inválida"); 
      
document.f1.fec1.focus(); 
     } 
    } else { 
     
alert("Fecha inválida"); 
     
document.f1.fec0.focus(); 
    } 
   } 

  
</script> 
</head> 
<body> 
  <form name="f1"> 
   <table> 
    <tr> 
     <td align="right"> 
      Fecha inicial (dd/mm/aaaa): 
     </td> 
     <td> 
      <input type="text" size="10" name="fec0"> 
     </td> 
    </tr> 
    <tr> 
     <td align="right"> 
      Fecha final (dd/mm/aaaa): 
     </td> 
     <td> 
      <input type="text" size="10" name="fec1"> 
     </td> 
    </tr> 
    <tr> 
     <td colspan="2" align="center"> 
      <input type="button" name="val" value="Validar" onclick="valFechas()"> 
     </td> 
    </tr> 
   </table> 
  </form> 
</body> 
</html> 
Saludos