Foros del Web » Programando para Internet » PHP »

Guardar fechas

Estas en el tema de Guardar fechas en el foro de PHP en Foros del Web. Hola tengo un formulario donde tengo un text con formato de fecha,en la tabla de la bd mysql tengo un campo fecha con formato date. ...
  #1 (permalink)  
Antiguo 02/12/2013, 10:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 94
Antigüedad: 16 años, 8 meses
Puntos: 0
Guardar fechas

Hola tengo un formulario donde tengo un text con formato de fecha,en la tabla de la bd mysql tengo un campo fecha con formato date. Al hacer submit ejecuta el proceso de guardar en la base de datos pero me guarda 0000-00-00.

este es el codigo ( el codigo php esta en el mismo archivo que el resto):

Código PHP:
<?php
$state 
false;
if (
$_POST['action'] == "add"){
$cnx mysql_connect("localhost""root""1234");
mysql_select_db("test"$cnx);

$fecha $_POST['fecha'];

    
$sql "INSERT INTO usuario ( fech) ";
    
$sql.= "VALUES ( '".$_POST['fecha']."') ";
    
$sql mysql_query($sql$cnx) or die(mysql_error());
    
$state true;
}
?>
<html>
<body>
<form name="form1" method="post">
<input type="text" id="fecha" size="10" maxlength="10"onkeyup="this.value=formateafecha(th is.value);"/><br />
<script type="text/javascript">
Calendar.setup({
inputField : "ingreso",
ifFormat : "%d-%m-%Y",
button : "lanzador",
});

function IsNumeric(valor)
{
var log=valor.length; var sw="S";
for (x=0; x<log; x++)
{ v1=valor.substr(x,1);
v2 = parseInt(v1);
//Compruebo si es un valor numérico
if (isNaN(v2)) { sw= "N";}
}
if (sw=="S") {return true;} else {return false; }
}
var primerslap=false;
var segundoslap=false;
function formateafecha(fecha)
{
var long = fecha.length;
var dia;
var mes;
var ano;
if ((long>=2) && (primerslap==false)) { dia=fecha.substr(0,2);
if ((IsNumeric(dia)==true) && (dia<=31) && (dia!="00")) { fecha=fecha.substr(0,2)+"/"+fecha.substr(3,7); primerslap=true; }
else { fecha=""; primerslap=false;}
}
else
{ dia=fecha.substr(0,1);
if (IsNumeric(dia)==false)
{fecha="";}
if ((long<=2) && (primerslap=true)) {fecha=fecha.substr(0,1); primerslap=false; }
}
if ((long>=5) && (segundoslap==false))
{ mes=fecha.substr(3,2);
if ((IsNumeric(mes)==true) &&(mes<=12) && (mes!="00")) { fecha=fecha.substr(0,5)+"/"+fecha.substr(6,4); segundoslap=true; }
else { fecha=fecha.substr(0,3);; segundoslap=false;}
}
else { if ((long<=5) && (segundoslap=true)) { fecha=fecha.substr(0,4); segundoslap=false; } }
if (long>=7)
{ ano=fecha.substr(6,4);
if (IsNumeric(ano)==false) { fecha=fecha.substr(0,6); }
else { if (long==10){ if ((ano==0) || (ano<1900) || (ano>2100)) { fecha=fecha.substr(0,6); } } }
}
if (long>=10)
{
fecha=fecha.substr(0,10);
dia=fecha.substr(0,2);
mes=fecha.substr(3,2);
ano=fecha.substr(6,4);
// Año no viciesto y es febrero y el dia es mayor a 28
if ( (ano%4 != 0) && (mes ==02) && (dia > 28) ) { fecha=fecha.substr(0,2)+"/"; }
}
return (fecha);
}

</script>
<input type="submit" id="submit" value="Ok"/>
<input type="hidden" name="action" value="add" />
</form>
</body>
</html>


que puede hacer para que me guarde los valores reales en vez de puros ceros?

gracias
  #2 (permalink)  
Antiguo 02/12/2013, 11:56
 
Fecha de Ingreso: noviembre-2012
Mensajes: 139
Antigüedad: 12 años
Puntos: 1
Respuesta: Guardar fechas

si quieres mostrar la fecha de hoy o al enviar el formulario te mostre la fecha que se envio usa la que todos conocen y es date()
ponla en una variable $fecha = date("d-m-Y"); y te mostrara la fecha real dia- mes -año
  #3 (permalink)  
Antiguo 02/12/2013, 11:57
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 11 años, 2 meses
Puntos: 9
Respuesta: Guardar fechas

Para guardar la fecha actual puedes hacer lo siguiente:

Primero recoger los datos (La fecha actual):

Código PHP:
Ver original
  1. $fecha = date("Y-m-d");

Luego ya introducirla al insert y se introducirá en la db.

(Ejemplo)
Código PHP:
Ver original
  1. $registrar = mysqli_query($conexion, "INSERT INTO fecha(fecha) VALUES ('".$fecha."')")or die(mysqli_error());

(PD: Y si quieres recoger la hora en vez de la fecha sustituyes/o incluyes, Y-m-d por H:i:s)

Recuerda que en la db el campo fecha ha de estar en el tipo: DATE.

Un cordial saludo.
  #4 (permalink)  
Antiguo 02/12/2013, 12:29
 
Fecha de Ingreso: marzo-2008
Mensajes: 94
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Guardar fechas

GRacias por las respuestas,
pero lo que necesito es introducir la fecha manualmente. El problema es que no se guarda esa fecha, sino que guarda solo ceros de esta forma: 0000-00-00.
  #5 (permalink)  
Antiguo 02/12/2013, 12:34
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Guardar fechas

Ya te han respondido, pero ahora sabemos también que tu problema de las fechas con php y mysql no es el único.

Si la fecha no está bien formateada, se meterán ceros. Ya te han respondido cómo formatear convertir la fecha a un formato que le guste a mysql.

Etiquetas: fecha, formulario, html, mysql, select, sql, tabla
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 22:19.