Foros del Web » Programando para Internet » Javascript »

necesito poder comparar la fecha de la funcion con otro campo del form

Estas en el tema de necesito poder comparar la fecha de la funcion con otro campo del form en el foro de Javascript en Foros del Web. Hola, estoy usando esta funcion para validar una fecha. Quisiera que en esa validacion, tambien se compare con un valor fecha que esta en el ...
  #1 (permalink)  
Antiguo 18/09/2006, 12:54
 
Fecha de Ingreso: junio-2006
Mensajes: 80
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta necesito poder comparar la fecha de la funcion con otro campo del form

Hola, estoy usando esta funcion para validar una fecha. Quisiera que en esa validacion, tambien se compare con un valor fecha que esta en el formulario, llamado fecha_entrega. Como puedo hacerlo.
la funcion:


Código PHP:
function validasinr(fldmilSepdecSepe) { 
if (
len ==8){
    
fecha22=fld.value.split("/");
    
fecha_procesofecha22[1]+"/"+fecha22[0]+"/"+fecha22[2];

 var 
fecha1=new Date(fecha_proceso);
      var 
fecha2=new Date(); 
                if (
fecha1>fecha2){
          
alert("La fecha de entrega no puede ser mayor a al día de hoy.");  // si la fecha es mayor a hoy.. error
            
fld.value ''
            
fld.focus();

        }else{
                if (
fecha1<fecha_entrega){
                 
alert("La fecha de entrega no puede ser menor a la fecha de emision.");  // si la fecha es mayor a hoy.. error
                                
fld.value ''
                                
fld.focus();
                                }else{
                var 
pagina="abm_cheque.asp?fechaok="+fld.value;
                
document.location=pagina;
                }
    
    }
        
}
return 
false;


  #2 (permalink)  
Antiguo 19/09/2006, 05:25
Avatar de crcbad  
Fecha de Ingreso: enero-2005
Mensajes: 302
Antigüedad: 19 años, 3 meses
Puntos: 0
Primero, si quieres validar una fecha, deberías comprobar más cosas, como tener en un array los días que tiene cada mes y comprobar que el mes introducido perteneciente al índice del array es correcto y que no es menor que 1, al igual que con los meses.

Segundo, las fechas no se pueden comprar directamente así, o desde luego bajo mi punto de vista no es lo correcto.

Para comprar dos fechas lo que yo siempre hago es dividir la fecha en dia, mes y año, al igual que la segunda fecha, y entonces comparar, primero por año, si son iguales, comprar por mes, y si es igual, últimamente comparar por día.

Si necesitas el script, te puedo pasar el que tengo hecho.

Un saludo.
__________________

:cool: [ http://eruben.sytes.net ] :cool:


Las dos frases que te ayudarán a salir adelante:
  • No hay mujer fea, solo copas de menos. :borracho:
  • Ante la duda, siempre coge la más tetuda. :arriba:
  #3 (permalink)  
Antiguo 19/09/2006, 14:26
 
Fecha de Ingreso: junio-2006
Mensajes: 80
Antigüedad: 17 años, 10 meses
Puntos: 0
ok..

aca te paso la funcion completa.. loque quiero es que el valor de fld final, cuando ya tiene 8 caracteres lo compare con el valor de un campo hidden del form que se llama fecha_entrega. El valor correcto de fld es si es mayor al valor de fecha_entrega.

Código PHP:
function currencyFormat(fldmilSepdecSepe) { 


    var 
sep 0
    var 
key ''
    var 
0
    var 
len len2 0
    var 
strCheck '0123456789'
    var 
aux aux2 ''
    var 
whichCode = (window.Event) ? e.which e.keyCode
    if (
whichCode == 13) return true// Enter 
    
key String.fromCharCode(whichCode); // Get key value from key code 
    
if (strCheck.indexOf(key) == -1) return false// Not a valid key 
    
len fld.value.length
    for(
0leni++) 
     if ((
fld.value.charAt(i) != decSep)) break; 
    
aux ''
    for(; 
leni++) 
     if (
strCheck.indexOf(fld.value.charAt(i))!=-1aux += fld.value.charAt(i); 
    
aux += key
    
len aux.length
    if (
len == 0fld.value ''
    if (
len == 1fld.value aux
    if (
len == 2){ 
        if (
aux>31) {
            
window.alert("El dia debe ser inferior a 31"); 
            
fld.value ''
            
fld.focus();
            }
        else 
            
fld.value aux
    } 
    if (
len && len 5) { 
     if (
len == 4){ 
        if (
aux.substr(len 2len)>12) {
            
window.alert("El mes debe ser inferior a 12"); 
            
fld.value ''
            
fld.focus();
            }
        else 
            
fld.value aux
    } 
     
aux2 ''
     for (
0len 3>= 0i--) { 
      if (
== 2) { 
       
aux2 += milSep
       
0
      } 
      
aux2 += aux.charAt(i); 
      
j++; 
     } 
     
fld.value ''
     
len2 aux2.length
     for (
len2 1>= 0i--) 
      
fld.value += aux2.charAt(i); 
     
fld.value += decSep aux.substr(len 2len); 
    } 
    if (
len && len 9) { 
     
aux2 ''
     for (
0len 3>= 0i--) { 
      if (
== && <= len -5) { 
       
aux2 += milSep
       
0
      } 
      
aux2 += aux.charAt(i); 
      
j++; 
     } 
     
fld.value ''
     
len2 aux2.length
     for (
len2 1>= 0i--) 
      
fld.value += aux2.charAt(i); 
     
fld.value += aux.substr(len 2len); 
    } 
    if (
len ==8){
    
fecha22=fld.value.split("/");
    
fecha_procesofecha22[1]+"/"+fecha22[0]+"/"+fecha22[2];

      var 
fecha1=new Date(fecha_proceso);
      var 
fecha2=new Date(); 
                if (
fecha1>fecha2){
          
alert("La fecha de emision no puede ser mayor a al día de hoy.");  // si la fecha es mayor a hoy.. error
            
fld.value ''
            
fld.focus();

        }else{
                
                var 
pagina="abm_cheque.asp?fechaok="+fld.value;
                
document.location=pagina;
                }

    
    
        
}

 return 
false;


Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:11.