Foros del Web » Programando para Internet » PHP »

¿Cómo guardo la fecha de nacimiento al registrar usuario?

Estas en el tema de ¿Cómo guardo la fecha de nacimiento al registrar usuario? en el foro de PHP en Foros del Web. Tal como dice el título, estoy haciendo un formulario de registro y no sé cómo debería guardar la fecha de nacimiento del usuario en la ...
  #1 (permalink)  
Antiguo 07/10/2014, 21:18
 
Fecha de Ingreso: noviembre-2011
Mensajes: 20
Antigüedad: 13 años
Puntos: 0
¿Cómo guardo la fecha de nacimiento al registrar usuario?

Tal como dice el título, estoy haciendo un formulario de registro y no sé cómo debería guardar la fecha de nacimiento del usuario en la base de datos...



Porque ahí hay 3 select, uno para cada valor (día mes y año), entonces...

Cómo guardo la fecha completa (día, mes, año)? Debo capturar los 3 inputs select por $_POST? y cómo guardaría esos 3 input luego en la columna fechaNacimiento?

Última edición por dankodigo; 07/10/2014 a las 21:26
  #2 (permalink)  
Antiguo 07/10/2014, 21:28
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ¿Cómo guardo la fecha de nacimiento al registrar usuario?

Concatena los datos y guardas la fecha resultante.

Código PHP:
Ver original
  1. $year = $_POST['nombre_input_año'];
  2. $month = $_POST['nombre_input_mes'];
  3. $day = $_POST['nombre_input_día'];
  4. $fecha = $year . '-' . $month . '-' . $day;
  5. $consulta = "INSERT INTO tuTabla (fechaNacimiento) VALUES '{$fecha}'";
  6. $query = mysqli_query($conexion, $consulta);

Aunque, en HTML5, existe un tipo de <input> con el que puedes tener un calendario desde el cual elegir una fecha.

Código HTML:
Ver original
  1. <input type = "date" name = "fecha" />

En ese caso, simplemente tomas su dato como lo harías con cualquier otro elementos del formulario:

Código PHP:
Ver original
  1. $fecha = $_POST['fecha'];

Te recomiendo realizar validaciones antes de insertar los datos en la BD.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 07/10/2014, 22:19
 
Fecha de Ingreso: noviembre-2011
Mensajes: 20
Antigüedad: 13 años
Puntos: 0
Respuesta: ¿Cómo guardo la fecha de nacimiento al registrar usuario?

Perfecto! Lo hice concatenando como me dijiste. Veo que con HTML5 es mucho más sencillo, pero, habrá una forma de cambiar el orden por dd/mm/yyyy? Gracias.
  #4 (permalink)  
Antiguo 07/10/2014, 23:58
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ¿Cómo guardo la fecha de nacimiento al registrar usuario?

Cita:
Iniciado por dankodigo Ver Mensaje
Veo que con HTML5 es mucho más sencillo, pero, habrá una forma de cambiar el orden por dd/mm/yyyy?
El formato de fecha que se muestra en el <input type = "date" /> es el de día/mes/año, sin embargo, el valor que almacena está en el formato año-mes-día, de manera que no tienes de qué preocuparte.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 08/10/2014, 01:07
 
Fecha de Ingreso: septiembre-2014
Mensajes: 180
Antigüedad: 10 años, 2 meses
Puntos: 14
Respuesta: ¿Cómo guardo la fecha de nacimiento al registrar usuario?

Como recomendación personal te diría que a la hora de almacenar fechas utilices el formato timestamp en vez de la fecha como cadena. De esta forma podrás operar con ella fácilmente con las funciones de fecha de PHP y también formatearla como quieras a la hora de mostrarla.

Por si te animas, te dejo enlaces para que le eches un ojo:

Para pasar de cadena a timestamp puedes usar "strtotime": http://es1.php.net/function.strtotime

Y aquí tienes todas las funciones de fecha de PHP, con las que podrás operar con ellas de forma correcta, en caso de que lo necesites, sin tener que preocuparte de si un mes tiene 30 ó 31 días, si un año es bisiesto, etc, etc:

http://es1.php.net/manual/es/ref.datetime.php

Un saludo!

Edito: también puedes usar la clase nativa DateTime de PHP (a partir de la versión 5.2.0), que PHP poco a poco va introduciendo este tipo de clases de forma nativa (también lo han hecho con las funciones de MySQL, por ejemplo) y marcando algunas de sus funciones como obsoletas para el futuro.
__________________
Unelink.es - VPS, servidores dedicados, hosting y dominios. 10 años a tu lado.

Etiquetas: fecha, formulario, registro, select
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 21:24.