<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
/**
* Funcion que devuelve true o false dependiendo de si la fecha es correcta.
* Tiene que recibir el dia, mes y año
*/
function isValidDate(day,month,year)
{
var dteDate;
// En javascript, el mes empieza en la posicion 0 y termina en la 11
// siendo 0 el mes de enero
// Por esta razon, tenemos que restar 1 al mes
month=month-1;
// Establecemos un objeto Data con los valore recibidos
// Los parametros son: año, mes, dia, hora, minuto y segundos
// getDate(); devuelve el dia como un entero entre 1 y 31
// getDay(); devuelve un num del 0 al 6 indicando siel dia es lunes,
// martes, miercoles ...
// getHours(); Devuelve la hora
// getMinutes(); Devuelve los minutos
// getMonth(); devuelve el mes como un numero de 0 a 11
// getTime(); Devuelve el tiempo transcurrido en milisegundos desde el
// 1 de enero de 1970 hasta
// el momento definido en el objeto date
// setTime(); Establece una fecha pasandole en milisegundos el valor de esta.
// getYear(); devuelve el año
// getFullYear(); devuelve el año
dteDate=new Date(year,month,day);
//Devuelva true o false...
return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}
/**
* Funcion que recibe una fecha en formato ingles "2013/01/21" y la devuelve
* en formato español "21/01/2013"
* Tiene que recibir:
* - fecha en formato ingles (2013/01/21)
* - formato de respuesta:
* 1 - fecha en formato cadena
* 2 - objeto fecha
* Devuelve vacio si la fecha es erronea
*/
function convertDateEsToEn(dateEs,formatReturn)
{
var patron=new RegExp("^(19|20)+([0-9]{2})([/])([0-9]{1,2})([/])([0-9]{1,2})$");
// Validamos que la fecha sea correcta en el formato español segun
// la expresion regular
if(dateEs.search(patron)==0)
{
values=dateEs.split("/");
// Revisamos que la fecha sea correcta
if(isValidDate(values[2],values[1],values[0]))
{
// devuelve la fecha en formato ingles
if(formatReturn==2)
{
// puedes devolver un objeto fecha para trabajar con el
return new Date(values[0],(parseInt(values[1])-1),values[2]);
}else{
// puedes devolver simplemente la fecha en formato cadena
return values[2]+"/"+values[1]+"/"+values[0];
}
}
}
return "";
}
</script>
</head>
<body>
<div>
Indica una fecha en formato (yyyy/mm/dd): <input type="text" size="12" maxlenght="10" onkeyup="document.getElementById('dateEN').innerHTML=convertDateEsToEn(this.value,1);">
</div>
<div>Fecha en formato (dd/mm/yyyy): <span id="dateEN"></span></div>
</body>
</html>
Comentarios sobre la versión: Versión 1 (0)
No hay comentarios