Validación de una fecha en un rango de dos fechas
Publicado por SkuNk (1 intervención) el 02/04/2005 23:17:52
Hola, tengo un problema con una validación de fechas en JavaScript, tengo que tener lista una aplicación el lunes y dependo de esto último para dejarla lista, a ver si alguien me puede ayudar.
Supongamos que ejecuto la función checkDate() con los valores ifechaini y ifechafin en formato UNIX TimeStamp, y los campos del formulario rellenados pero un unas fechas fuera del rango de ifechaini y ifechafin. Se supone que la función debería devolver un "false" y sacar un alert con los respectivos mensajes, pero no lo hace correctamente. He intentado encontrar más acerca de la función date() en la documentación JavaScript y en Google para encontrar una forma de comprobar una fecha entre un rango de dos fechas, pero no he sacado nada en claro.
¿Por favor, alguien sabe que estoy haciendo mal?
-------------------------------------------------------------------------------------------------------
checkDate("UNIX TIMESTAMP", "UNIX TIMESTAMP");
function checkDate(ifechaini, ifechafin)
{
var formulario = document.forms[0];
date1 = new Date();
date2 = new Date();
diff = new Date();
var vfechaini_dia = formulario.fechaini_dia.options[formulario.fechaini_dia.selectedIndex].value;
var vfechaini_mes = formulario.fechaini_mes.options[formulario.fechaini_mes.selectedIndex].value;
var vfechaini_ano = formulario.fechaini_ano.options[formulario.fechaini_ano.selectedIndex].value;
var vfechaini_hora = formulario.fechaini_hora.options[formulario.fechaini_hora.selectedIndex].value;
var vfechaini_min = formulario.fechaini_min.options[formulario.fechaini_min.selectedIndex].value;
// FECHA FIN
var vfechafin_dia = formulario.fechafin_dia.options[formulario.fechafin_dia.selectedIndex].value;
var vfechafin_mes = formulario.fechafin_mes.options[formulario.fechafin_mes.selectedIndex].value;
var vfechafin_ano = formulario.fechafin_ano.options[formulario.fechafin_ano.selectedIndex].value;
var vfechafin_hora = formulario.fechafin_hora.options[formulario.fechafin_hora.selectedIndex].value;
var vfechafin_min = formulario.fechafin_min.options[formulario.fechafin_min.selectedIndex].value;
date1temp = new Date(formulario.fechaini_dia.options[formulario.fechaini_dia.selectedIndex].value + "/" + formulario.fechaini_mes.options[formulario.fechaini_mes.selectedIndex].value + "/" + formulario.fechaini_ano.options[formulario.fechaini_ano.selectedIndex].value + " " + formulario.fechaini_hora.options[formulario.fechaini_hora.selectedIndex].value + ":" + formulario.fechaini_min.options[formulario.fechaini_min.selectedIndex].value + ":00");
vfechaini = date1.setTime(date1temp.getTime());
alert(vfechaini);
date2temp = new Date(formulario.fechafin_dia.options[formulario.fechafin_dia.selectedIndex].value + "/" + formulario.fechafin_mes.options[formulario.fechafin_mes.selectedIndex].value + "/" + formulario.fechafin_ano.options[formulario.fechafin_ano.selectedIndex].value + " " + formulario.fechafin_hora.options[formulario.fechafin_hora.selectedIndex].value + ":" + formulario.fechafin_min.options[formulario.fechafin_min.selectedIndex].value + ":00");
vfechafin = date2.setTime(date2temp.getTime());
if(vfechaini < ifechaini)
{
alert('¡La fecha de inicio introducida no es válida!\nPor favor, selecciona una fecha dentro del rango de fechas.')
//formulario.fechaini_dia.focus();
return false;
}
if(vfechafin > ifechafin)
{
alert('¡La fecha fin introducida no es válida!\nPor favor, selecciona una fecha dentro del rango de fechas.')
//formulario.fechafin_dia.focus();
return false;
}
return true;
}
-------------------------------------------------------------------------------------------------------
Gracias por adelantado.
Supongamos que ejecuto la función checkDate() con los valores ifechaini y ifechafin en formato UNIX TimeStamp, y los campos del formulario rellenados pero un unas fechas fuera del rango de ifechaini y ifechafin. Se supone que la función debería devolver un "false" y sacar un alert con los respectivos mensajes, pero no lo hace correctamente. He intentado encontrar más acerca de la función date() en la documentación JavaScript y en Google para encontrar una forma de comprobar una fecha entre un rango de dos fechas, pero no he sacado nada en claro.
¿Por favor, alguien sabe que estoy haciendo mal?
-------------------------------------------------------------------------------------------------------
checkDate("UNIX TIMESTAMP", "UNIX TIMESTAMP");
function checkDate(ifechaini, ifechafin)
{
var formulario = document.forms[0];
date1 = new Date();
date2 = new Date();
diff = new Date();
var vfechaini_dia = formulario.fechaini_dia.options[formulario.fechaini_dia.selectedIndex].value;
var vfechaini_mes = formulario.fechaini_mes.options[formulario.fechaini_mes.selectedIndex].value;
var vfechaini_ano = formulario.fechaini_ano.options[formulario.fechaini_ano.selectedIndex].value;
var vfechaini_hora = formulario.fechaini_hora.options[formulario.fechaini_hora.selectedIndex].value;
var vfechaini_min = formulario.fechaini_min.options[formulario.fechaini_min.selectedIndex].value;
// FECHA FIN
var vfechafin_dia = formulario.fechafin_dia.options[formulario.fechafin_dia.selectedIndex].value;
var vfechafin_mes = formulario.fechafin_mes.options[formulario.fechafin_mes.selectedIndex].value;
var vfechafin_ano = formulario.fechafin_ano.options[formulario.fechafin_ano.selectedIndex].value;
var vfechafin_hora = formulario.fechafin_hora.options[formulario.fechafin_hora.selectedIndex].value;
var vfechafin_min = formulario.fechafin_min.options[formulario.fechafin_min.selectedIndex].value;
date1temp = new Date(formulario.fechaini_dia.options[formulario.fechaini_dia.selectedIndex].value + "/" + formulario.fechaini_mes.options[formulario.fechaini_mes.selectedIndex].value + "/" + formulario.fechaini_ano.options[formulario.fechaini_ano.selectedIndex].value + " " + formulario.fechaini_hora.options[formulario.fechaini_hora.selectedIndex].value + ":" + formulario.fechaini_min.options[formulario.fechaini_min.selectedIndex].value + ":00");
vfechaini = date1.setTime(date1temp.getTime());
alert(vfechaini);
date2temp = new Date(formulario.fechafin_dia.options[formulario.fechafin_dia.selectedIndex].value + "/" + formulario.fechafin_mes.options[formulario.fechafin_mes.selectedIndex].value + "/" + formulario.fechafin_ano.options[formulario.fechafin_ano.selectedIndex].value + " " + formulario.fechafin_hora.options[formulario.fechafin_hora.selectedIndex].value + ":" + formulario.fechafin_min.options[formulario.fechafin_min.selectedIndex].value + ":00");
vfechafin = date2.setTime(date2temp.getTime());
if(vfechaini < ifechaini)
{
alert('¡La fecha de inicio introducida no es válida!\nPor favor, selecciona una fecha dentro del rango de fechas.')
//formulario.fechaini_dia.focus();
return false;
}
if(vfechafin > ifechafin)
{
alert('¡La fecha fin introducida no es válida!\nPor favor, selecciona una fecha dentro del rango de fechas.')
//formulario.fechafin_dia.focus();
return false;
}
return true;
}
-------------------------------------------------------------------------------------------------------
Gracias por adelantado.
Valora esta pregunta


0