Foros del Web » Programando para Internet » PHP »

Como manejar fechas[practicas]

Estas en el tema de Como manejar fechas[practicas] en el foro de PHP en Foros del Web. Buenas gente.. Antes que nada no puteen.. xD sé "como manejar fechas" mi pregunta es mas que nada de practicas, recien estaba corrigiendo mi BDD ...
  #1 (permalink)  
Antiguo 18/09/2010, 14:50
 
Fecha de Ingreso: agosto-2009
Mensajes: 31
Antigüedad: 14 años, 7 meses
Puntos: 2
Pregunta Como manejar fechas[practicas]

Buenas gente.. Antes que nada no puteen.. xD sé "como manejar fechas" mi pregunta es mas que nada de practicas, recien estaba corrigiendo mi BDD para volver a empezar mi pagina y me surgio la duda, si uso fehas actuales que me conviene hacer, usar el CURRENT_TIMESTAMP de MySQL, o usar time() en php y guardar valores en int que sea fechas en formato POSIX...

Mi principal idea es que es mejor usar el CURRENT_TIMESTAMP, ya que a) me ahorro el trabajo de codear eso, b) es mas entendible en la BDD y c) la transformacion la debo hacer de todos modos..

Me gustaria saber que opinan.. =D

Saludos!
  #2 (permalink)  
Antiguo 18/09/2010, 15:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Como manejar fechas[practicas]

Te recomiendo que todo lo que uses todo lo que puedas de parte de la base de datos. Aunque en cuanto al tiempo no es lo mismo time que timestamp. Yo al ingresar una fecha en al base de datos uso NOW. Luego con las funciones de MySQL, como por ejemplo date_format, hago los query si solo requiero tomar la parte del la fecha y no del tiempo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 18/09/2010, 16:05
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Como manejar fechas[practicas]

Hola,

Los campos que te permiten almacenar fechas y horas en la base de datos son bien específicos, cambiar su funcionamiento no es adecuado, como por ejemplo crear campos char ni int para guardar fechas, ni tampoco depender de algunas de las funciones de la base de datos, por el mismo tema de escalabilidad.

El ejemplo mas claro lo obtienes cuando piensas en cambiar el idioma de una aplicación y volverla internacional.

En resúmen, usa campos date, time o datetime en la base de datos que estés usando, y busca el campo que se adecue específicamente al tipo de fecha que vas a utilizar, como por ejemplo en SQL Server tienes smalldatetime.

Si necesitas dar formato o mostrar una fecha, usa el lenguaje de programación, no solo tiene mas funciones sino que te permite cambiar de formato simplemente con cambiar el lenguaje del sistema en general.

Usa las funciones de i18n que provee el lenguaje de programación que estés usando, es decir, no es lo mismo insertar una fecha 31/01/2010 que 01.31.2010. La base de datos espera una fecha sin especificar el lenguaje, es decir 20100131 para el 31 de enero del 2010. Si usas un formato demasiado específico vas a tener que cambiar todas las querys, funciones y stored procedures de la base de datos; mientras que eso lo debería hacer el lenguaje automáticamente.

Es mucho mas eficiente para la base de datos hacer cálculos con campos date que con un campo tuyo personalizado en formato int con un unix time stamp. Por ejemplo puedes tener una consulta por años, que de otra forma sería muy difícil de implementar:

select year(fecha), avg(salario) from table group by year(fecha)

Saludos,

ps:

El formato de notación Unix time solo te permite tener fechas desde el 1 de Enero de 1970.
  #4 (permalink)  
Antiguo 18/09/2010, 16:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 31
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Como manejar fechas[practicas]

Hackman,

Zarpada respuesta(ademas que me gusto tu avatar xD), es cierto, solo que viendo phpBB vi que en la BDD manejaba muchas cosas con POSIX, por eso me genero la duda.

Muchas gracias por la respuesta =D

Una pequeña pregunta mas, porque no estoy muy bien con MySQL todavia, si alguien sabe, cual es la diferencia entre DATETIME y TIMESTAMP?
  #5 (permalink)  
Antiguo 18/09/2010, 16:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como manejar fechas[practicas]

Cita:
Iniciado por maquina06 Ver Mensaje
Hackman,

Zarpada respuesta(ademas que me gusto tu avatar xD), es cierto, solo que viendo phpBB vi que en la BDD manejaba muchas cosas con POSIX, por eso me genero la duda.

Muchas gracias por la respuesta =D

Una pequeña pregunta mas, porque no estoy muy bien con MySQL todavia, si alguien sabe, cual es la diferencia entre DATETIME y TIMESTAMP?
creo que no es correcto meter todo en la bolsa de PHP, recuerda que SQL es otro lenguaje, por lo mismo no creo que este foro de PHP sea el lugar adecuado para exponer tus inquietudes... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 18/09/2010, 16:38
 
Fecha de Ingreso: agosto-2009
Mensajes: 31
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Como manejar fechas[practicas]

Cita:
Iniciado por pateketrueke Ver Mensaje
creo que no es correcto meter todo en la bolsa de PHP, recuerda que SQL es otro lenguaje, por lo mismo no creo que este foro de PHP sea el lugar adecuado para exponer tus inquietudes... (:
Tenes toda la razon del mundo.. =P perdon.. se me escapo porque era una quick.. (soy igual de estricto con el tema de los foros) jajaja..

Ok.. muchas gracias chicos(o grandes).. =)

Etiquetas: current_timestamp, time, fechas, bbdd
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 13:22.