Foros del Web » Programando para Internet » Javascript »

comparar fechas con getElementById

Estas en el tema de comparar fechas con getElementById en el foro de Javascript en Foros del Web. Hola a todos, estoy utilizando javascript para comparar dos fechas, y evitar que una sea menor a la otra: aca el codigo: Campos: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 01/11/2011, 08:36
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
comparar fechas con getElementById

Hola a todos, estoy utilizando javascript para comparar dos fechas, y evitar que una sea menor a la otra:

aca el codigo:
Campos:


Código PHP:
Ver original
  1. <?php
  2. echo "<input  type='text' id='inicio' value='".$fecha."'/>"; //Donde tengo: 01/11/2011 07:00--->
  3.  //Se solicita cambio en una fecha final, pero el usuario o puede cambiar fecha y hora
  4.  //o por ejemplo solo la hora, por tal motivo coloque en cajas aparte la fecha y la hora:
  5.  
  6.  //CAMPO DE LA FECHA
  7.  echo "<input type='text' id='fecfin' Onblur=' ".$validar." ' size='9' value='".$fecfin."' >";
  8.  
  9.  //CAMPO DE LA HORA
  10.  echo "<b>Hora</b>&nbsp;<input type='text' id='horfin' value='".$horfin."' size='4' onFocus='horainput('horfin')' Onchange='".$validar."'>";
  11.  
  12. ?>


El codigo de la validación:

Código PHP:
Ver original
  1. <?php
  2. //VALIDACION QUE LE HAGO PARA COMPARAR LAS FECHAS CON JAVASCRIPT
  3.  $validar="var inicio=document.getElementById('inicio').value;
  4.            var b=document.getElementById('fecfin').value;
  5.            var c=document.getElementById('horfin').value;
  6.            var  fin= b+' '+c ;
  7.            alert(fin+' menor a  '+ inicio);
  8.            if(fin<=inicio)
  9.   { alert('Horario Final debe ser Mayor al inicial');  
  10.  
  11. }";
  12.    //Lo que hago aca es capturar la fecha y hora de fin y los concateno para compararlo
  13.    //con la fecha inicial pero no me esta validando cuando hago un cambio en la fecha
  14.    //si el cambio lo hago en la hora, la validación si funciona          
  15.  
  16. ?>

De que forma puedo entonces comparar si una fecha es mayor a la otra con getElementById ?

Agradezco me puedan dar alguna indicación.....
  #2 (permalink)  
Antiguo 01/11/2011, 09:50
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: comparar fechas con getElementById

el problema es que si comparas como lo estas indicando la comparación entre fechas no estaría correcta ya que el valor que estas obteniendo es un String, para eso puedes suar el objeto Date(), y hacer comparaciones, te dejo una función
Código Javascript:
Ver original
  1. function compararFecha(fecha1,fecha2)
  2. {
  3.     var fechaSep = fecha1.split('-');
  4.     var fechaSep2 = fecha2.split('-');
  5.     var indicada = new Date(fechaSep[0],fechaSep[1]-1,fechaSep[2]);
  6.     var indicada2 = new Date(fechaSep2[0],fechaSep2[1]-1,fechaSep2[2]);
  7.     if(indicada > indicada2){
  8.         alert('la fecha1 es mayor a la fecha2');
  9.     }else{
  10.         alert('la fecha 2 es mayor o igual a la fecha1');
  11.     }          
  12.  
  13. }
lo unico es que tienes que pasarle los parámetros en el formato 'aaaa-mm-dd', sino tendrias que modificar el indice del array al formato que tengas tu, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 01/11/2011, 13:34
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: comparar fechas con getElementById

Gracias, tu respuesta me ha servido de guia, y ya logre validarlo como queria...

Etiquetas: funcion, getelementbyid, php
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 10:32.