elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  campos de fecha mysql y funciones de fecha php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: campos de fecha mysql y funciones de fecha php  (Leído 9,598 veces)
SirLanceCC


Desconectado Desconectado

Mensajes: 1.093


Ver Perfil WWW
campos de fecha mysql y funciones de fecha php
« en: 2 Enero 2008, 19:30 pm »

Bien.. estoy experimentando o practicando un poco con el mysql y el php, haciendo un sistemilla. El punto es que tengo un campo y lo tengo definido como datetime. A la hora de hacer la consulta me devuelve la fecha con formato inglés... y lo que ami me gustaría es poder obtenerla en formato timestamp como un int para formatear yo mismo la fecha con date de php().

Ya se que mysql tiene sus propias funciones para formatear fechas, pero es que se hacen consultas muy largas y eso me da hueva, además no podría poner "Martes 3 de enero" o algo así por que saldría en inglés... pero si no hay solución ya tendré que hacerlo así...

Espero haberme explicado bien y gracias de antemano...


En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #1 en: 2 Enero 2008, 19:54 pm »

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


En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #2 en: 2 Enero 2008, 20:08 pm »

tambien lee esto
http://dev.mysql.com/doc/refman/5.0/es/datetime.html

yo he trabajado con tipos de campo timestamp, asi te da el tiempo en formato unix, el problema es cuando tienes datos de antes del primero de enero de 1970 (creo recordar xD)

En línea

SirLanceCC


Desconectado Desconectado

Mensajes: 1.093


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #3 en: 2 Enero 2008, 21:23 pm »

Citar
el problema es cuando tienes datos de antes del primero de enero de 1970
O después de 2037... eso si es un problema... ¿que tal si se registra una persona que nació antes del 70? :-\

Pensé que strtotime() me sería útil pero tiene el mismo problema...
Ehh creo que lo mejor sería usar el formateo de mysql o hacer mi propia función que lo único que haría es reordenar los datos del formato mysql al que yo quiero...
En línea

Azielito
no es
Colaborador
***
Desconectado Desconectado

Mensajes: 9.188


>.<


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #4 en: 2 Enero 2008, 22:29 pm »

te da valores nulos xD o fechas extrañas XD

si lo que quieres es tener una fecha "normal" con fechas muy anteriores XD entonces debes hacer una funcion propia :D
En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #5 en: 2 Enero 2008, 22:31 pm »

la función date es para dar formato

la gente ni se molesta en leer ¬¬'

Citar
http://es2.php.net/manual/es/function.strtotime.php

Note: El rango válido de una timestamp suele ser desde Fri, 13 Dec 1901 20:45:54 GMT (Viernes, 13 de diciembre) a Tue, 19 Jan 2038 03:14:07 GMT (Martes, 19 de enero). (Estas son las fechas que corresponden a los valores mínimo y máximo de un entero con signo de 32 bits.)
« Última modificación: 2 Enero 2008, 22:35 pm por Hans el Topo » En línea

SirLanceCC


Desconectado Desconectado

Mensajes: 1.093


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #6 en: 2 Enero 2008, 22:44 pm »

Citar
lo que ami me gustaría es poder obtenerla en formato timestamp como un int para formatear yo mismo la fecha con date de php().
La gente ni se molesta en leer...

Ya se que date() es para dar formato, el problema es que debes especificar (string formato, int timestamp) y mysql (si no mal entendi a partir de la 5.0) devuelve datetime, date y timestamp en formato 2007-12-31 12:00:00 lo cual desde mi punto de vista no es un int ni un timestamp valido!

Pense en usar strtotime() para convertir esa cadena que me da mysql en un timestamp valido, pero tendría problemas si trato de procesar una fecha antes de 1970 o después de 2037 (según la documentación de mysql).

En mysql estoy usando datetime que tiene un rango de 1000 hasta 9999

Lo que yo pienso es hacer una función que tome la fecha en formato YYY-MM-DD HH:MM:SS y la tronsforme a DD/MM/YY por simple manipulación de cadenas...
En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #7 en: 2 Enero 2008, 23:46 pm »

yo nose si soy tonto o soy al único ser humano al que le aparece que el limite es 1901 y no  1970... (probado y no me devuelve valores raros)

pero weno eso es algo que ya había dicho en el anterior post, cosas de no leer supongo
« Última modificación: 2 Enero 2008, 23:48 pm por Hans el Topo » En línea

SirLanceCC


Desconectado Desconectado

Mensajes: 1.093


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #8 en: 3 Enero 2008, 01:37 am »

Tenga en cuenta que aunque DATETIME, DATE, y TIMESTAMP pueden especificarse usando el mismo conjunto de formatos, los tipos no tienen el mismo rango de valores. Por ejemplo, TIMESTAMP no pueden ser anteriores a 1970 o posteriores a 2037. Esto significa que una fecha como '1968-01-01', que sería legal como DATETIME o DATE no es un valor válido TIMESTAMP y se convierte a 0 si se asigna a un objeto de este tipo

There was originally some controversy over whether the Unix time_t should be signed or unsigned. If unsigned, its range in the future would be doubled, postponing the 32-bit overflow (by 68 years). However, it would then be incapable of representing times prior to 1970

Parece que mysql trabaja con timestamp unsigned, si no me crees mira esto:
Código:
consulta SQL:
UPDATE `myspace`.`users` SET `last_activity_date` = '1965-01-01 11:41:21' WHERE `users`.`id` =1 LIMIT 1

MySQL ha dicho: 
#1292 - Incorrect datetime value: '1965-01-01 11:41:21' for column 'last_activity_date' at row 1

Sea como sea es mejor no arriesgar sobre todo si sabes que trabajarás con fechas anteriores a 1970.

A pesar de todo, aun dudo si debo formatear mi fecha por manupulación de cadena o por las funciones de mysql... he oido que con mysql es más rápido, pero la flojera es grande...
En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: campos de fecha mysql y funciones de fecha php
« Respuesta #9 en: 3 Enero 2008, 12:36 pm »

veo que no me has entendido... yo te estoy diciendo desde php, de hecho la funcion y definicion que te paso es la de php...
si quieres guardar fechas en timestamp en la base de datos hazlo en un bigint y pon el espacio que necesites... que manera de complicarse más absurda tiene la gente xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines