Foros del Web » Programando para Internet » Javascript »

Formateador mm/aaaa

Estas en el tema de Formateador mm/aaaa en el foro de Javascript en Foros del Web. Hola, alguien me podría ayudar a modificar este código para que valide una fecha pero del tipo mm/aaaa (sin día) ? He intentado de algunas ...
  #1 (permalink)  
Antiguo 07/08/2009, 07:32
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 15 años, 3 meses
Puntos: 0
Formateador mm/aaaa

Hola, alguien me podría ayudar a modificar este código para que valide una fecha pero del tipo mm/aaaa (sin día) ? He intentado de algunas formas y no logro conseguir que funcione.
Se agradece de antemano.

Cita:
function IsNumeric(valor)
{
var log=valor.length; var sw="S";
for (x=0; x<log; x++)
{ v1=valor.substr(x,1);
v2 = parseInt(v1);
//Compruebo si es un valor numérico
if (isNaN(v2)) { sw= "N";}
}
if (sw=="S") {return true;} else {return false; }
}

var primerslap=false;
var segundoslap=false;


function formateafecha(fecha)
{
var long = fecha.length;
var dia;
var mes;
var ano;

if ((long>=2) && (primerslap==false)) { dia=fecha.substr(0,2);
if ((IsNumeric(dia)==true) && (dia<=31) && (dia!="00")) { fecha=fecha.substr(0,2)+"/"+fecha.substr(3,7); primerslap=true; }
else { fecha=""; primerslap=false;}
}
else
{ dia=fecha.substr(0,1);
if (IsNumeric(dia)==false)
{fecha="";}
if ((long<=2) && (primerslap=true)) {fecha=fecha.substr(0,1); primerslap=false; }
}
if ((long>=5) && (segundoslap==false))
{ mes=fecha.substr(3,2);
if ((IsNumeric(mes)==true) &&(mes<=12) && (mes!="00")) { fecha=fecha.substr(0,5)+"/"+fecha.substr(6,4); segundoslap=true; }
else { fecha=fecha.substr(0,3);; segundoslap=false;}
}
else { if ((long<=5) && (segundoslap=true)) { fecha=fecha.substr(0,4); segundoslap=false; } }
if (long>=7)
{ ano=fecha.substr(6,4);
if (IsNumeric(ano)==false) { fecha=fecha.substr(0,6); }
else { if (long==10){ if ((ano==0) || (ano<1900) || (ano>2100)) { fecha=fecha.substr(0,6); } } }
}

if (long>=10)
{
fecha=fecha.substr(0,10);
dia=fecha.substr(0,2);
mes=fecha.substr(3,2);
ano=fecha.substr(6,4);
// Año no viciesto y es febrero y el dia es mayor a 28
if ( (ano%4 != 0) && (mes ==02) && (dia > 28) ) { fecha=fecha.substr(0,2)+"/"; }
}
return (fecha);
}

//VALIDACION DE FECHA
var formato = 1;
  #2 (permalink)  
Antiguo 07/08/2009, 10:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Formateador mm/aaaa

Hola blaine01

Prueba con esto, es una expresion regular que crea un conjunto de caracteres que definen los meses con formato 01-12, luego debe venir una barra / y finalmente el año en 4 digitos.

JAVASCRIPT
Código:
	function isValidDate(fec)
	{
	//FORMATO:	mm/aaaa


		var RE = /^(01|02|03|04|05|06|07|08|09|10|11|12){1}\/\d{4}/; 		

		if (RE.test(fec) == true)
		{
			document.getElementById('showFecha').innerHTML = fec;
		}
		else
		{
			alert('- Error, Formato de fecha no valido (mm/yyyy)\n - No ha ingresado un mes valido');
			document.getElementById('showFecha').innerHTML = '- Error, Formato de fecha no valido (/mm/yyyy)';						
			return false;
		}
	}
HTML

Código:
<form action="" method="post" name="miForm">
	<p>Fecha (mm/yyyy): <input type="text" name="fecha_2" value="" size="12" maxlength="7"></p>
	<p><input type="button" name="btnValida" value="Valida Fecha 2" onClick="javascript:isValidDate(document.miForm.fecha_2.value);">
</FORM>
Espero te sirva

Saludos

Fenris
  #3 (permalink)  
Antiguo 10/08/2009, 07:49
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Formateador mm/aaaa

Muchas gracias Fenris, me ha servido para salir del paso.
Ahora igual estoy intentando modificar el otro js para que formatee automáticamente la fecha.

Saludos
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 18:28.