2012-08-02 11 views
6

Quiero almacenar la fecha y la hora en que un usuario realiza una acción en mi sitio web en una base de datos MySQL. Me gustaría ser capaz de hacer lo siguiente con facilidad:¿Cuál es la mejor manera de almacenar fecha y hora en una base de datos MySQL para una visualización posterior con PHP?

  • tienda de la fecha y la hora como un campo en la base de datos
  • Uso construido en PHP o MySQL función para generar la fecha y hora de la Acción
  • Almacene la fecha y hora en función de la hora de mi servidor, y no se preocupe por las zonas horarias de los usuarios.
  • Order By el campo de fecha y hora cuando consulta MySQL
  • Más tarde, muestre la fecha-hora en muchos formatos diferentes utilizando una función en los métodos PHP

Aquí están mis preguntas:

  • Lo tipo de datos debería usar en MySQL (por ejemplo, timestamp, datetime ...)?
  • ¿Qué método debo usar para generar la fecha y hora (p. Ej., MySQL's now(), PHP date() ...)?
  • ¿Qué método de PHP debo usar más adelante para formatear la fecha y hora de varias maneras bonitas (por ej., 23/4/2012, 5 pm el lunes, julio de 2012 ...)?
+1

[¿No se preguntó antes?] (Http://stackoverflow.com/questions/409286/datetime-vs-timestamp)? – Matt

Respuesta

2

Lo almacenaría como una fecha y hora, no como una marca de tiempo.

Normalmente uso la función de fecha de PHP y de esa manera si alguna vez desea almacenar la hora relativa a la zona horaria del usuario, simplemente puede cambiar la zona horaria en función de la configuración del usuario.

Cuando lo saca de la base de datos, use strtotime() para convertirlo, luego puede usar todas las funciones de fecha() para mostrarlo como lo desee. Ejemplo:

echo date('F j, Y',strtotime($db_datetime)); //Displays as 'March 5, 2012' 
0

Si se establece el tipo de datos mysql para una marca de tiempo no anulable, a continuación, guardar filas con un valor nulo para esa columna, MySQL se actualizará automáticamente la fecha y hora para usted.

En cuanto a leerlo de nuevo, puede usar el strtotime de php y el objeto de fecha para obtener el formato que necesita.

0

Debe utilizar el tipo de datos de fecha y hora para su requisito. Almacenará tanto la fecha como la hora de su campo de entrada en función de su consulta.

Para recuperar la fecha y hora, puede usar la función date_format() de mysql o la función date() de PHP. La fecha y hora siempre se almacenará de acuerdo a la hora del servidor y no a la hora del cliente.

Cuestiones relacionadas