Foros del Web » Programando para Internet » PHP »

dar vuelta la fecha al insertar en mysql

Estas en el tema de dar vuelta la fecha al insertar en mysql en el foro de PHP en Foros del Web. Hola, tengo esta duda, yo tengo armado un formulario en el cual uno de los datos a completar es la fecha de nacimiento, el tema ...
  #1 (permalink)  
Antiguo 21/04/2009, 14:08
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
dar vuelta la fecha al insertar en mysql

Hola, tengo esta duda, yo tengo armado un formulario en el cual uno de los datos a completar es la fecha de nacimiento, el tema que mysql toma el formato 0000-00-00 y la idea es que se complete como es normal 00-00-0000, como hago para que uno inserte en el formulario 00-00-0000 y en la tabla 0000-00-00?.

saludos y gracias.
  #2 (permalink)  
Antiguo 21/04/2009, 14:12
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: dar vuelta la fecha al insertar en mysql

Bueno esto te puede servir
Recibe una fecha con formato dd-mm-aaaa
Devuelve una fecha con formato aaaa-mm-dd

function mysql_date($date) {
$year = substr($date,6,4); // 01-12-2007
$month = substr($date,3,2); $day = substr($date,0,2);
$date = $year."-".$month."-".$day;
return ($date);
}
  #3 (permalink)  
Antiguo 21/04/2009, 14:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: dar vuelta la fecha al insertar en mysql

Usa mejor un timestamp para guardar la fecha, así la puedes formatear usando date() para mostrarla en el formato que quieres.

Saludos.
  #4 (permalink)  
Antiguo 21/04/2009, 14:15
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
buenisimo ahora una duda en la funcion ($date) el valor que tomaria del formulario seria date?.
disculpa este pregunta es que recien empiezo con php.

gracias.

Cita:
Iniciado por GatorV Ver Mensaje
Usa mejor un timestamp para guardar la fecha, así la puedes formatear usando date() para mostrarla en el formato que quieres.

Saludos.
si me decis como seria , porque todavia no llegue a esa parte, recien estoy empezando, yo tengo un formulario y en un texbox llamado fecha , toma el valor de la fecha puesto por el usuario en 00-00-0000.

si podes poneme como seria tomando date como texbox para poder insertar la fecha en mysql en formato 0000-00-00

gracias.

Última edición por GatorV; 21/04/2009 a las 14:21
  #5 (permalink)  
Antiguo 21/04/2009, 14:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: dar vuelta la fecha al insertar en mysql

Un Timestamp es el número de segundos desde la epoca Unix, tu puedes pasar (si es una fecha válida) una fecha usando strtotime, e insertarla en tu BDD en un campo Timestamp.

Saludos.
  #6 (permalink)  
Antiguo 21/04/2009, 14:36
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Cita:
Iniciado por doylelives Ver Mensaje
Bueno esto te puede servir
Recibe una fecha con formato dd-mm-aaaa
Devuelve una fecha con formato aaaa-mm-dd

function mysql_date($date) {
$year = substr($date,6,4); // 01-12-2007
$month = substr($date,3,2); $day = substr($date,0,2);
$date = $year."-".$month."-".$day;
return ($date);
}
puse como dice aca esta funcion ,llamandose el textbox donde introduzco la fecha FECHA, el tema ahora es , en el mysl_querry que tengo que poner osea que variable para que tome la fecha dada vuelta,osea.

yo tengo este insert , donde esta '$fecha' que iria para que tome la funcion?.
gracias.

Código PHP:
mysql_query("insert into caballos(nombre,tomo,folio,pelo,madre,padre,sexo,raza,fechanacim,fechahoy) values 
   ('$_POST[nombre]','$_POST[tomo]','$_POST[folio]','$_POST[pelo]','$_POST[madre]','$_POST[padre]','$_POST[sexo]','$_POST[raza]','$fecha','$fechahoy')"
,$conexion) or die("Problemas en el select".mysql_error());
mysql_close($conexion); 
Cita:
Iniciado por diegomel Ver Mensaje
puse como dice aca esta funcion ,llamandose el textbox donde introduzco la fecha FECHA, el tema ahora es , en el mysl_querry que tengo que poner osea que variable para que tome la fecha dada vuelta,osea.

yo tengo este insert , donde esta '$fecha' que iria para que tome la funcion?.
gracias.

Código PHP:
mysql_query("insert into caballos(nombre,tomo,folio,pelo,madre,padre,sexo,raza,fechanacim,fechahoy) values 
   ('$_POST[nombre]','$_POST[tomo]','$_POST[folio]','$_POST[pelo]','$_POST[madre]','$_POST[padre]','$_POST[sexo]','$_POST[raza]','$fecha','$fechahoy')"
,$conexion) or die("Problemas en el select".mysql_error());
mysql_close($conexion); 
porque asi como esta no esta insertando la fecha pone 0000-00-00 en mysql.

Última edición por GatorV; 21/04/2009 a las 17:57
  #7 (permalink)  
Antiguo 21/04/2009, 15:15
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: dar vuelta la fecha al insertar en mysql

Si ya tienes la variable $fecha en php con el formato dd-mm-aaaa, recien debes aplicar la funcion.
$fecha_formateada=mysql_date($fecha);
Por ultimo usa $fecha_formateada dentro del query
  #8 (permalink)  
Antiguo 21/04/2009, 21:14
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: dar vuelta la fecha al insertar en mysql

estoy haciendo la pruba con esto pero no anda, imprime solo - - y no pone los numeros. alguien me puede decir donde esta el error?.
gracias.
aca toma el valor del formulario en el cual el textfield se llama fecha (hasta esta bien porque si pongo imprimir el valor directamente lo imprime, el tema es cuando agregeo la funcion esta.
saludos.

Código PHP:
<?php
//cambio de fecha 0000-00-00 a 00-00-0000
function mysql_date($fechanacim) { 
$year substr($date,6,4); // 01-12-2007
$month substr($date,3,2); 
$day substr($date,0,2); 
$fechanacim $year."-".$month."-".$day
return (
$fechanacim); 


$fechanacim $_POST['fecha'];
mysql_date($fechanacim);
$fechanacim mysql_date($fechanacim);
echo 
$fechanacim;
?>
  #9 (permalink)  
Antiguo 21/04/2009, 21:22
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: dar vuelta la fecha al insertar en mysql

ya logre hacerlo andar , era problema de variables, donde dice ($date) en la funcion iba $fechanacim que es el valor que toma del textbox.

gracias.
  #10 (permalink)  
Antiguo 21/04/2009, 21:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: dar vuelta la fecha al insertar en mysql

Otra opción es usar directamente la función STR_TO_DATE en MySQL para realizar la conversión a la hora de insertar. Un ejemplo:
Código MySQL:
Ver original
  1. INSERT INTO tabla (fecha) VALUES (STR_TO_DATE('$fecha', '%d-%m-%Y'));
Donde $fecha es una variable con la fecha en el formato 'DD-MM-YYYY'
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 18:24.