script para validar fechas
Hola!He encontrado este script para validar dos fechas recogidas de un formulario, mis conocimientos de javascript son muy básicos, agradecería si alguien pudiese explicarme exactamente como funciona este script porque no entiendo la función padout,
Gracias
<script language="JavaScript"><!--
function padout(number) { return (number < 10) ? '0' + number : number; }
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function validate(what) {
var startday = what.startday.options[what.startday.selectedIndex].value;
var startmonth = what.startmonth.options[what.startmonth.selectedIndex].value;
var startyear = what.startyear.options[what.startyear.selectedIndex].text;
var endday = what.endday.options[what.endday.selectedIndex].value;
var endmonth = what.endmonth.options[what.endmonth.selectedIndex].value;
var endyear = what.endyear.options[what.endyear.selectedIndex].text;
unvalidstartdate = startday + '/' + startmonth + '/' + startyear;
unvalidenddate = endday + '/' + endmonth + '/' + endyear;
var startdate = new Date(startyear-0,startmonth-1,startday-0);
var enddate = new Date(endyear-0,endmonth-1,endday-0);
var validstartdate = padout(startdate.getDate()) + '/' + padout(startdate.getMonth()+1) + '/' + y2k(startdate.getYear())
var validenddate = padout(enddate.getDate()) + '/' + padout(enddate.getMonth()+1) + '/' + y2k(enddate.getYear())
if (unvalidstartdate != validstartdate) {
alert('Start Date: ' + what.startday.options[what.startday.selectedIndex].text +
' ' + what.startmonth.options[what.startmonth.selectedIndex].text +
' ' + what.startyear.options[what.startyear.selectedIndex].text + ' is invalid');
return false;
}
if (unvalidenddate != validenddate) {
alert('End Date: ' + what.endday.options[what.endday.selectedIndex].text +
' ' + what.endmonth.options[what.endmonth.selectedIndex].text +
' ' + what.endyear.options[what.endyear.selectedIndex].text + ' is invalid');
return false;
}
starttime = Date.UTC(y2k(startdate.getYear()),startdate.getMonth(),startdate.getDate(),0,0,0);
endtime = Date.UTC(y2k(enddate.getYear()),enddate.getMonth(),enddate.getDate(),0,0,0);
if (starttime < endtime) {
// valid
}
else {
alert('Start Date is not less than End Date');
return false
}
currentdate = new Date();
currenttime = Date.UTC(y2k(currentdate.getYear()),currentdate.getMonth(),currentdate.getDate(),0,0,0);
if (starttime > currenttime) {
// valid
}
else {
alert('start Date is not less than todays date');
return false;
}
what.startdate.value = validstartdate;
what.enddate.value = validenddate;
return true;
}
//--></script>
Gracias
<script language="JavaScript"><!--
function padout(number) { return (number < 10) ? '0' + number : number; }
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function validate(what) {
var startday = what.startday.options[what.startday.selectedIndex].value;
var startmonth = what.startmonth.options[what.startmonth.selectedIndex].value;
var startyear = what.startyear.options[what.startyear.selectedIndex].text;
var endday = what.endday.options[what.endday.selectedIndex].value;
var endmonth = what.endmonth.options[what.endmonth.selectedIndex].value;
var endyear = what.endyear.options[what.endyear.selectedIndex].text;
unvalidstartdate = startday + '/' + startmonth + '/' + startyear;
unvalidenddate = endday + '/' + endmonth + '/' + endyear;
var startdate = new Date(startyear-0,startmonth-1,startday-0);
var enddate = new Date(endyear-0,endmonth-1,endday-0);
var validstartdate = padout(startdate.getDate()) + '/' + padout(startdate.getMonth()+1) + '/' + y2k(startdate.getYear())
var validenddate = padout(enddate.getDate()) + '/' + padout(enddate.getMonth()+1) + '/' + y2k(enddate.getYear())
if (unvalidstartdate != validstartdate) {
alert('Start Date: ' + what.startday.options[what.startday.selectedIndex].text +
' ' + what.startmonth.options[what.startmonth.selectedIndex].text +
' ' + what.startyear.options[what.startyear.selectedIndex].text + ' is invalid');
return false;
}
if (unvalidenddate != validenddate) {
alert('End Date: ' + what.endday.options[what.endday.selectedIndex].text +
' ' + what.endmonth.options[what.endmonth.selectedIndex].text +
' ' + what.endyear.options[what.endyear.selectedIndex].text + ' is invalid');
return false;
}
starttime = Date.UTC(y2k(startdate.getYear()),startdate.getMonth(),startdate.getDate(),0,0,0);
endtime = Date.UTC(y2k(enddate.getYear()),enddate.getMonth(),enddate.getDate(),0,0,0);
if (starttime < endtime) {
// valid
}
else {
alert('Start Date is not less than End Date');
return false
}
currentdate = new Date();
currenttime = Date.UTC(y2k(currentdate.getYear()),currentdate.getMonth(),currentdate.getDate(),0,0,0);
if (starttime > currenttime) {
// valid
}
else {
alert('start Date is not less than todays date');
return false;
}
what.startdate.value = validstartdate;
what.enddate.value = validenddate;
return true;
}
//--></script>
La funcion padout le das un numero X, si éste es menor que 10, regresa "0X", si es mayor, regresa X;
ejemplo:
num = padout(5); // (aqui, num vale "05" )
num = padout(16); // (aqui, num vale "16" )
claro, tambien trabaja con variables... padout(varX)
saludos, scriptman.
ejemplo:
num = padout(5); // (aqui, num vale "05" )
num = padout(16); // (aqui, num vale "16" )
claro, tambien trabaja con variables... padout(varX)
saludos, scriptman.