mktime y checkdate en javascript

Les mostrare como crear dos funciones que son muy conocidas en php (mktime y checkdate) pero en este caso esta hecho con javascript cuyo uso puede servir si se necesita usar al lado del cliente, ideal para validar fechas antes de entrar al servidor (que puede servir para cualquier lenguaje de programacion)

La funcion checkdate verifica la validez de la fecha formada por sus argumentos. Una fecha es considerada válida si cada parámetro es definido apropiadamente.Devuelve TRUE si la fecha dada es válida de lo contrario devuelve FALSE.

function checkDate(month, day, year) {
var monthLength = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if (!day || !month || !year) {
return false;
}
// check for bisestile year
if (year/4 == parseInt(year/4)) {
monthLength[1] = 29;
}
if (month < 1 || month > 12) {
return false;
}
if (day > monthLength[month-1]) {
return false;
}
return true;
}

La función mktime devuelve la marca de tiempo Unix que corresponde a los argumentos dados. Esta marca de tiempo es un entero largo que contiene el número de segundos entre el Epoch Unix (Enero 1 1970 00:00:00 GMT) y la hora especificada.

function mktime() {
var no, ma = 0, mb = 0, i = 0, d = new Date(), argv = arguments, argc = argv.length;
d.setHours(0,0,0); d.setDate(1); d.setMonth(1); d.setYear(1972);
var dateManip = {
0: function(tt){ return d.setHours(tt); },
1: function(tt){ return d.setMinutes(tt); },
2: function(tt){ set = d.setSeconds(tt); mb = d.getDate() – 1; return set; },
3: function(tt){ set = d.setMonth(parseInt(tt)-1); ma = d.getFullYear() – 1972; return set; },
4: function(tt){ return d.setDate(tt+mb); },
5: function(tt){ return d.setYear(tt+ma); }
};
for( i = 0; i < argc; i++ ){
no = parseInt(argv[i]*1);
if (isNaN(no)) {
return false;
} else {
// arg is number, lets manipulate date object
if(!dateManip[i](no)){
// failed
return false;
}
}
}
return Math.floor(d.getTime()/1000);
}

La forma de usar estas funciones, es la siguiente:

mktime
————–

var start_date = mktime(start_hour,start_minute,0,start_month,start_day,start_year)

cuyos parametros pueden ser datos que provienen de un formulario
var start_day = document.form1.start_day.value;
var start_month = document.form1.start_month.value;
var start_year = document.form1.start_year.value;
var start_hour = document.form1.start_hour.value;
var start_minute = document.form1.start_minute.value;

Es ideal para comparar fecha, por ejemplo puede ser que la fecha de inicio (start_date) no sea mayor que la fecha final (end_date)

var end_date = mktime(end_hour,end_minute,0,end_month,end_day,end_year)

if(start_date > end_date)
{
alert(“Fecha de inicio no debe ser mayor que fecha de fin”)
} else {
alert(“Fecha Correcta”)
}

checkdate
————–
recuerden que el checkdate retorna true o false

if (checkDate(ends_month,ends_day,ends_year) == false)
{
alert(“fecha no valida”);
} else {
alert(“fecha correcta”);
}