Hola me estan atormentando en el trabajo con una BD mal hecha, en la cual no estaban las fechas con el tipo date si no varchar, asi que he tenido que reprogramar todo eso y os explico el resultado:
Primero la funcion javascript para verificar lo que escribe el usuario:
JavaScript:
-
function esDigito(sChr){
-
var sCod = sChr.charCodeAt(0);
-
return ((sCod> 47) && (sCod = 1) && (nDia = 1) && (nMes <= 12));
-
return bOk;
-
}
-
function valAno(oTxt){
-
var bOk = true;
-
var nAno = oTxt.value.substr(6);
-
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
-
if (bOk){
-
for (var i = 0; i <nAno.length; i++){
-
bOk = bOk && esDigito(nAno.charAt(i));
-
}
-
}
-
return bOk;
-
}
-
function valFecha(oTxt){
-
var bOk = true;
-
if (oTxt.value != ""){
-
bOk = bOk && (valAno(oTxt));
-
bOk = bOk && (valMes(oTxt));
-
bOk = bOk && (valDia(oTxt));
-
bOk = bOk && (valSep(oTxt));
-
if (!bOk){
-
alert("Fecha inválida");
-
oTxt.value = "";
-
oTxt.focus();
-
}
-
}
-
}
En el input del campo donde se ingresa la fecha va esto: onBlur="valFecha(this)"
y luego recuperais la fecha que en este ejemplo seria para mysql, que trabaja en yy/mm/dd asi que con split la adecuamos a nuestro formato, en asp seria asi):
ASP:
-
MiCadena = split(fecha_ins, "/",3,1)
-
fecha_ins = MiCadena(2) & Micadena(1) & Micadena(0)
recordad que split existe en cualquier lenguaje de programacion.
Luego haceis la insercion en la BD y listo