Foros del Web » Programando para Internet » Javascript »

No guarda valor de funcion fecha

Estas en el tema de No guarda valor de funcion fecha en el foro de Javascript en Foros del Web. Tengo este codigo para que el usuario ingrese manualmente su fecha, mi campo se llama fecha tipo date y mi BD es Mysql, lo que ...
  #1 (permalink)  
Antiguo 26/07/2010, 02:20
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 10 meses
Puntos: 0
No guarda valor de funcion fecha

Tengo este codigo para que el usuario ingrese manualmente su fecha, mi campo se llama fecha tipo datey mi BD es Mysql, lo que no se es que valor es el que debo llevar para guardarlo en la BD, claro esta la funcion no la hice yo, solo la encontre, y no la entiendo gracias por la ayuda de verdad la necesito o repruebo.
Código HTML:
Fecha de Ingreso:
<input name="fecha" type="text" size="10" maxlength="10" onKeyUp="this.value=formatDate(this.value);"> 
Código Javascript:
Ver original
  1. <script language="JavaScript">
  2. function IsNumeric(value) {
  3.             var log=value.length;
  4.             var sw="S";
  5.             for (x=0; x<log; x++) {v1=value.substr(x,1);v2 = parseInt(v1);
  6.                 if (isNaN(v2)) { sw= "N";}//check if numeric value
  7.             }
  8.             if (sw=="S") {return true;}
  9.             else {return false;}
  10.         }
  11.         var slap1=false;
  12.         var slap2=false;
  13.         function formatDate(date) {
  14.             var lon = date.length;
  15.             var day;
  16.             var month;
  17.             var year;
  18.             if ((lon>=2) && (slap1==false)) { day=date.substr(0,2);
  19.                 if ((IsNumeric(day)==true) && (day<=31) && (day!="00")) { date=date.substr(0,2)+"/"+date.substr(3,7); slap1=true; }
  20.                 else { date=""; slap1=false;}}
  21.             else{day=date.substr(0,1);
  22.                 if (IsNumeric(day)==false)     {date="";}
  23.                 if ((lon<=2) && (slap1=true)) {date=date.substr(0,1);slap1=false;}}
  24.             if ((lon>=5) && (slap2==false)) {month=date.substr(3,2);
  25.                 if ((IsNumeric(month)==true) &&(month<=12) && (month!="00")) {date=date.substr(0,5)+"/"+date.substr(6,4);slap2=true;}
  26.                 else {date=date.substr(0,3);slap2=false;}}
  27.             else {if ((lon<=5) && (slap2=true)) {date=date.substr(0,4);slap2=false;}}
  28.             if (lon>=7) {
  29.                 year=date.substr(6,4);
  30.                 if (IsNumeric(year)==false) {date=date.substr(0,6);}
  31.                 else {if (lon==10){if ((year==0) || (year<1900) || (year>2100)) {date=date.substr(0,6);}}}
  32.             }
  33.             if (lon>=10) {
  34.                 date=date.substr(0,10);
  35.                 day=date.substr(0,2);
  36.                 month=date.substr(3,2);
  37.                 year=date.substr(6,4);
  38.                 // Año no viciesto y es febrero y el day es mayor a 28
  39.                 if ( (year&#37;4!= 0) && (month ==02) && (day>28) ) {date=date.substr(0,2)+"/";}
  40.                 else{if((month ==02)&& (day>29)){date=date.substr(0,2)+"/";}}
  41.                 if ((month==04)||(month==06)||(month==09)||(month==11)){if (day>30){date=date.substr(0,2)+"/";}}
  42.             }
  43.             return (date);
  44.  
  45.         }
  46. </script language="JavaScript">

O debo unir los campos antes de guardarlo, en ese caso cuales y como los uno

Saludos a todos
  #2 (permalink)  
Antiguo 26/07/2010, 05:36
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: No guarda valor de funcion fecha

Hola

¿Tu pregunta es que formato de fecha ha de ingresarse en el campo? Sin pararme mucho 26/07/10

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 26/07/2010, 11:43
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No guarda valor de funcion fecha

No,replanteo la pregunta ¿ cual de los campos usados debe ponerse en el imput y donde iria mi campo llamado fecha en el anterior codigo pues, no se mucho de javascript? por ende en el insert tengo fecha pero al guardar los datos en la BD los valores que guarda son 00000-00-00 y yo necesito que guarde la fecha que el usuario inserta en los select

Última edición por edanalvi; 26/07/2010 a las 11:51
  #4 (permalink)  
Antiguo 26/07/2010, 12:25
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: No guarda valor de funcion fecha

Hola

Cita:
Iniciado por edanalvi Ver Mensaje
No,replanteo la pregunta ¿ cual de los campos usados debe ponerse en el imput y donde iria mi campo llamado fecha en el anterior codigo pues, no se mucho de javascript? por ende en el insert tengo fecha pero al guardar los datos en la BD los valores que guarda son 00000-00-00 y yo necesito que guarde la fecha que el usuario inserta en los select
No he entendido una palabra de lo que dices. Vuelve a redactar cual es el problema. En cuanto a que en la bd se ingresa esa fecha, seguramente es por que ese campo es la que tiene por defecto, aunque le sobra un dígito al año

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 26/07/2010, 14:36
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No guarda valor de funcion fecha

Perdon por el enredo.
Tengo un formulario donde el usuario coloca la fecha en un campo en formato español, este se almacena en un registro llamado fecha tipo date, pero como Mysql no acepta el formato español, necesito saber como darle vuelta a la fecha que ingreso el usuario.
Pero como el codigo que puse no lo hice yo, solo lo tome no lo entiendo.
Ahora necesito:
1- Guardar el valor que se ingreso en el imput en mi BD pero no se cual es la variable del codigo anterior que lleva el resultado para insertarla en la BD.
2- Antes de guardarla debo darle vualta a la fecha para que ingrese en formato correcto.

En sintesis eso es lo que necesito , y de nuevo disculpas por no saber expresar lo que necesito,.

Gracias por la ayuda
  #6 (permalink)  
Antiguo 26/07/2010, 15:15
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: No guarda valor de funcion fecha

Hola

Sería un lío modificar esa función, de hecho no estoy seguro que su pudiera editar para adaptarlo a lo que te ocupa.
Prueba con esta mascara. Solo has de indicarle al usuario el formato que se permite (yyyy-mm-dd)
Código Javascript:
Ver original
  1. <html>
  2. </head>
  3. <script type="text/javascript">
  4. var patron = new Array(4,2,2)
  5. function Validar(elem,separador,pat,numerico) {
  6.     if(elem.valoranterior != elem.value) {
  7. valor = elem.value;
  8. largo = valor.length;
  9. valor = valor.split(separador);
  10. valor2 = "";
  11.  
  12.     for(i=0; i<valor.length; i++) {
  13.         valor2 += valor[i];
  14.     }
  15.  
  16.     if(numerico){
  17.         for(j=0; j<valor2.length; j++){
  18.             if(isNaN(valor2.charAt(j))){
  19.                 letra = new RegExp(valor2.charAt(j),"g");
  20.                 valor2 = valor2.replace(letra,"");
  21.             }
  22.         }
  23.     }
  24.  
  25. valor = "";
  26. valor3 = new Array();
  27.     for(n=0; n<pat.length; n++) {
  28.         valor3[n] = valor2.substring(0,pat[n]);
  29.         valor2 = valor2.substr(pat[n]);
  30.     }
  31.  
  32.     for(q=0; q<valor3.length; q++) {
  33.         if(q == 0) {
  34.             valor = valor3[q];
  35.         }else{
  36.             if(valor3[q] != "") {
  37.                 if (valor3[1] > 12 ) {
  38.                     valor = valor3[0];
  39.                 } else if (valor3[2] > 31) {
  40.                     valor = valor3[0] + separador + valor3[1];
  41.                 }else{
  42.                     valor += separador + valor3[q];
  43.                 }
  44.  
  45.             }
  46.         }
  47.     }
  48.  
  49.     elem.value = valor;
  50.     elem.valoranterior = valor;
  51.     }
  52. }
  53. </script>
  54. </head>
  55. <body>
  56. <form>
  57. <h1>Valida una fecha yyyy-mm-dd</h1>
  58. <input type="text" name="fecha" id= "fecha" onkeyup="Validar(this,'-',patron,true)" maxlength="10" />
  59. </form>
  60. </body>
  61. </html>
Ten en cuenta que la validación que vale al final es la de el lado del servidor

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 26/07/2010, 22:30
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: No guarda valor de funcion fecha

Tenia que solucionar esto entonces opte por cambiarle a la base de datos el tipo que tenia mi campo ahora quedo fecha tipo varchar de 10.

Ahora ya guarda la fecha en el formato dd/mm/aaaa.

No se si este bien lo que hice pero me funciona, solamente quisiera que alguien me dijera si al hacer una consulta entre dos rangos de fecha pero tomando en cuenta que el valor no es date sino varchar este funcionaria con un between?



Gracias por la atencion

Última edición por edanalvi; 29/07/2010 a las 00:20

Etiquetas: funcion, fechas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:28.