Foros del Web » Programando para Internet » PHP »

Problema con datetime

Estas en el tema de Problema con datetime en el foro de PHP en Foros del Web. Hola, estoy tratando de registrar en una base de datos la fecha y hora en la que se registra cada usuario. Para eso cree una ...
  #1 (permalink)  
Antiguo 09/08/2011, 14:31
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 12 años, 8 meses
Puntos: 8
Problema con datetime

Hola, estoy tratando de registrar en una base de datos la fecha y hora en la que se registra cada usuario. Para eso cree una tabla usuarios con un campo fecha_registro en donde se registra la fecha en la que se registro el usuario. El problema es que a la hora de registrarse, el campo de datetime se llena de la siguiente manera: 0000-00-00 00:00:00.

El campo fecha_registro esta definido como NOT NULL y de tipo DATETIME, y este es el registrar_usuario.php:

Código PHP:
<?php
session_start
(); 

$con1 mysql_connect("host","name","pass");
if (!
$con1)
  {
  die(
'Could not connect: ' mysql_error());
  }

$priv 1;
mysql_select_db("database"$con1);
$date=getdate();
$sql="INSERT INTO usuarios (usuario_id, privilegio, nombre, apellido, email, password, fecha_registro, foto)
VALUES
('','$priv','$_POST[nombre]','$_POST[apellido]','$_POST[email]','$_POST[password]','$date','Imagenes/male.png')"
;

if (!
mysql_query($sql,$con1))
  {
  die(
'Error: ' mysql_error());
  }
echo 
"1 record added";

mysql_close($con1);
?>
Que es lo que estoy haciendo mal? Muchas gracias por su ayuda!
  #2 (permalink)  
Antiguo 09/08/2011, 14:39
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Problema con datetime

Hola que tal.

Recuerda que debe de tener el mismo formato la fecha que recibes del formulario a la de mysql, ya que esto te ocasiona problemas, a lo que me refiero es que si la fecha del formulario la recibes en formato dd-mm-YYYY y mysql lo acepta como YYYY-mm-dd eso ocasiona que te lo llene en 0000-00-00

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 09/08/2011, 14:45
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 12 años, 8 meses
Puntos: 8
Respuesta: Problema con datetime

Y eso lo debo de cambiar a la hora de crear el campo fecha_registro en la tabla usuarios? o lo puedo cambiar a la hora de hacer el INSERT INTO?
  #4 (permalink)  
Antiguo 09/08/2011, 14:50
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Problema con datetime

Cita:
Iniciado por morfasto Ver Mensaje
Y eso lo debo de cambiar a la hora de crear el campo fecha_registro en la tabla usuarios? o lo puedo cambiar a la hora de hacer el INSERT INTO?
Lo puedes hacer de la forma que más te guste, pero lo que te recomiendo es que lo pongas desde el formulario, con el motivo de colocar menos lineas de código

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #5 (permalink)  
Antiguo 09/08/2011, 15:06
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 12 años, 8 meses
Puntos: 8
Respuesta: Problema con datetime

Sigo sin poder lograrlo! :(

No entiendo que es lo que debo de corregir para que funcione.
  #6 (permalink)  
Antiguo 09/08/2011, 15:32
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 12 años, 8 meses
Puntos: 8
Respuesta: Problema con datetime

En que parte espesificamente es que debo de cambiar el formato de YYYY-mm-dd a dd-mm-YYYY para que funcione bien?
  #7 (permalink)  
Antiguo 09/08/2011, 15:48
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Problema con datetime

Cita:
Iniciado por morfasto Ver Mensaje
En que parte espesificamente es que debo de cambiar el formato de YYYY-mm-dd a dd-mm-YYYY para que funcione bien?
prueba con esto

Código PHP:
Ver original
  1. <?php
  2.  
  3. $con1 = mysql_connect("host","name","pass") or die ("Error en el servidor: ".mysql_error());
  4. mysql_select_db("database", $con1) or die ("Error en la base de datos: ".mysql_error());
  5. $priv = 1;
  6. $date=date("Y-m-d");
  7. $sql = mysql_query("INSERT INTO usuarios (usuario_id, privilegio, nombre, apellido, email, password, fecha_registro, foto)
  8.                     VALUES('','$priv','{$_POST['nombre']}','{$_POST['apellido']}','{$_POST['email']}','{$_POST['password']}','$date','Imagenes/male.png')") or die ("Error en el query: ".mysql_error());
  9. echo "1 record added";
  10.  
  11. mysql_close($con1);
  12. ?>

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #8 (permalink)  
Antiguo 09/08/2011, 16:18
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 12 años, 8 meses
Puntos: 8
Respuesta: Problema con datetime

Sigue saliendo lo mismo: 0000-00-00, alguna otra idea?
  #9 (permalink)  
Antiguo 09/08/2011, 16:22
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Problema con datetime

El campo de fecha tiene que ser de tipo DateTime, teniendo esto en cuenta, la fecha la agregas en el siguiente formato:

Cita:
YYYY-MM-DD HH:MM:SS
Código PHP:
Ver original
  1. $fecha = date('Y-m-d H:i:s', time());
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #10 (permalink)  
Antiguo 09/08/2011, 16:23
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Problema con datetime

Cita:
Iniciado por morfasto Ver Mensaje
Sigue saliendo lo mismo: 0000-00-00, alguna otra idea?
¿Es el único campo que no se llena? el formato es date o datetime, si es datetime camia esto

Código PHP:
Ver original
  1. $date=date("Y-m-d H:i:s");
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #11 (permalink)  
Antiguo 09/08/2011, 23:35
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 12 años, 8 meses
Puntos: 8
Respuesta: Problema con datetime

Las dos ultimas respuestas me sirvieron por igual, prove las 2 y funcionaron a la perfeccion, gracias!

Pero, estas 2 soluciones han generado un par de dudas:
1. Porque las fechas salen en desorden? Me refiero a que el año esta delante del mes y del dia. Hay forma de reordenarlo para que salga en un orden distinto como d-m-Y ?
2. De que manera podria poner por ejemplo la fecha de cumpleaños? La solucion podria ser con un script en java que genere la fecha en un string y guardarlo?

Muchas gracias de nuevo!
  #12 (permalink)  
Antiguo 10/08/2011, 00:03
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Problema con datetime

Hay que guardarlo así porque ese en el formato de DateTime, pero puedes mostrar la fecha como quieras. Lee esto y sus funciones para que aprendas más sobre fechas:

http://www.php.net/manual/es/function.date.php

Sobre la segunda duda no entendí, pero supongo que es de lo mismo, formato de fechas.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #13 (permalink)  
Antiguo 10/08/2011, 02:13
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Problema con datetime

Y esto simplemente:
Código PHP:
Ver original
  1. $sql="INSERT INTO usuarios (usuario_id, privilegio, nombre, apellido, email, password, fecha_registro, foto)
  2. VALUES
  3. ('','$priv','$_POST[nombre]','$_POST[apellido]','$_POST[email]','$_POST[password]',NOW(),'Imagenes/male.png')";

O más aún, en la definición de la tabla haces:
Código MySQL:
Ver original
  1. CREATE TABLE usuario (
  2. ...
  3. fecha_registro DATETIME DEFAULT NOW()
  4. ...
  5. );
Así ni si quiera tienes que insertarlo, no usas PHP para eso, registras la fecha y la hora directamente desde la base de datos. Aquí te paso la especificación de NOW().

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Última edición por vgonga1986; 10/08/2011 a las 02:13 Razón: Highlight

Etiquetas: datetime, mysql, registro, sql, tabla, usuarios
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 10:09.