Foros del Web » Programando para Internet » Javascript »

fechas

Estas en el tema de fechas en el foro de Javascript en Foros del Web. Hola tengo un textbox en donde ingreso un fecha por ejemplo "05/05/2007" y quiero que en otro textbox me ponga automaticamente "05/05/2008", a ese campo ...
  #1 (permalink)  
Antiguo 05/07/2007, 09:58
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
fechas

Hola tengo un textbox en donde ingreso un fecha por ejemplo "05/05/2007" y quiero que en otro textbox me ponga automaticamente "05/05/2008", a ese campo no puedo sacarle el getDate, getMonth y getYear porque me da error ya que solo acepta un date de javascript, alguien sabe como hacerlo o una ayuda.

Gracias.
  #2 (permalink)  
Antiguo 05/07/2007, 10:05
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: fechas

Hola beququi

Espero que esto te sirva:

Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
sumaAnio(fec) {
  
fec fec.split('/');
  
fec[2] = parseInt(fec[2])+1;
  return 
fec.join('/');
}
</script>
</head>
<body>
<form>
<input type="text" onblur = "fecha.value = sumaAnio(this.value)" />
<input type="text" name="fecha" />
</form>
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 06/07/2007, 08:04
 
Fecha de Ingreso: septiembre-2006
Mensajes: 64
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: fechas

Muchas gracias ha servido.
  #4 (permalink)  
Antiguo 08/07/2007, 17:41
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: fechas

Hola:


Me aburría un poco y me ha apetecido hacer una implementación para años bisiestos.

Resulta que este año 2007 no es un año bisiesto, luego 28/02/2007 es válido, pero 29/02/2007 no existe. El 2008 en cambio sí que es bisiesto, y 29/02/2008 sí es válido. Si le sumamos una unidad al año tenemos 29/02/2009, la cual es una fecha inválida. Debería retornar 01/03/2009:

Código:
// redefinimos el método toString del objeto Date para que nos lo ponga bonito
Date.prototype.toString = function(sep) {
	var dia = this.getDate();
	if(dia<10) dia = "0"+dia;
	var mes = this.getMonth()+1;
	if(mes<10) mes = "0"+mes;
	var anyo = this.getYear();
	if(sep==undefined) sep = "/";
	return dia+sep+mes+sep+anyo;
}

//nos captura el dia, el mes y el año en un String de formato dd/mm/aaaa
var patronFecha = /^(\d{2})\/(\d{2})\/(\d{4})$/;

// Llamada funcionSumarAnyo(dd/mm/aaaa, dd, mm, aaaa) devuelve una cadena con un año más de la fecha dada. El primer parámetro es omitido
var funcionSumarAnyo =  function(todo,dia,mes,anyo) { 
	mes = parseInt(mes)-1;
	anyo = parseInt(anyo)+1;
	// new Date(año, mes, día);
	var nuevaFecha = new Date(anyo, mes, dia);
	return nuevaFecha.toString("/");
}

// 29/02/2008 es válido porque 2008 es bisiesto
var fecha = "29/02/2008";
// si le sumamos un año no debería dar 29/02/2009, eso es inválido. Debería retornar 01/03/2009 que es cuando realmente ha pasao un año.
var nuevaFecha = fecha.replace(patronFecha,funcionSumarAnyo);
document.write( fecha +" más un año es "+nuevaFecha );
No sé si todo esto es necesario, pero venía a cuento con el hilo, y aquí se queda posteado.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 03:33.