Pregunta

Ok, estoy un poco confundido. Estoy trabajando en un proyecto que tiene que guardar alguna time() en la base de datos. Me parece que para una mejor flexibilidad que debería almacenarlo como marca de tiempo de modo que pudiera hacer la operación entre 2 veces y otras cosas interesantes. Pero he visto (en este caso más que en cualquier otro) que mucha gente almacenar bases de datos en el tiempo en formato de fecha, cayendo en algunas preguntas comunes como: ¿Cómo puedo convertir el formato de fecha en la marca de tiempo? o ¿Cómo puedo restar una fecha a otra que tienen diferente formato de fecha? etc.

Estoy equivocado utilizando las marcas de tiempo y convertirlo más tarde (que se muestra al usuario) al formato de hora? base de datos MySQL.

¿Fue útil?

Solución

Me tienden a almacenar marcas de tiempo en int (10) de formato, como una marca de tiempo UNIX siempre será de 10 caracteres de longitud. Se recomienda el uso int en lugar de VARCHAR o CHAR como cuando se utiliza la sintaxis de la orden de SQL que no obtendrá el orden incorrecto.

Digamos que quiere convertir de una fecha para una marca de tiempo, se puede utilizar ya sea strtotime o mktime , dependiendo de lo que está haciendo.

Para calcular la diferencia entre dos marcas de tiempo simplemente restar unos de otros.

Para la emisión de zonas horarias puede establecer esto en el país del usuario utilizando date_default_timezone_set . Esto se tendrá en cuenta cuando se está utilizando funciones como fecha

Otros consejos

MySQL soporta DateTime, la fecha y marca de hora columnas y ofertas una serie de funciones convenientes para el trabajo con ellos a través de SQL. Sugiero leer a través de la página del manual vinculado a elegir el más adecuado para sus necesidades.

En caso de que no lo sabía, MySQL soporta varias funciones de fecha, DATESUB, DATEADD etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top