Foros del Web » Programando para Internet » PHP »

¿Que formato de fecha es este?

Estas en el tema de ¿Que formato de fecha es este? en el foro de PHP en Foros del Web. Que tal Estoy re-haciendo un formulario de registro de un FORO pre-fabricado. Trato de imitar la manera en que almacena las fechas, pero no encuentro ...
  #1 (permalink)  
Antiguo 14/04/2006, 21:37
Avatar de cookie  
Fecha de Ingreso: agosto-2002
Mensajes: 688
Antigüedad: 15 años, 3 meses
Puntos: 0
¿Que formato de fecha es este?

Que tal

Estoy re-haciendo un formulario de registro de un FORO pre-fabricado.


Trato de imitar la manera en que almacena las fechas, pero no encuentro como. He visto en la Base de Datos como almacena la fecha y por ejemplo del día de hoy 14 de abril de 2006 y se almacenó así "1145057826"

ME podrían ayudar?

Gracias
__________________
___________________________

do the evolution ¡
Mineriaenlinea.com
  #2 (permalink)  
Antiguo 14/04/2006, 21:40
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Ese formato se llama unix timestamp. Y es la cantidad de segundos que hay transcurrido desde enero de 1970 o algo así.

Para transformar ese número al formato que tú quieras, usa la función date()
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #3 (permalink)  
Antiguo 14/04/2006, 21:49
Avatar de cookie  
Fecha de Ingreso: agosto-2002
Mensajes: 688
Antigüedad: 15 años, 3 meses
Puntos: 0
GRacias por responder ,

El tipo de dato definido no es TIMESTAMP es de tipo INT(10), por cierto olvide mencionar q la base de datos es MySQL y trabajo con PHP 4.1.

No tengo permiso de modificar la BD (para cambiar a TIMESTAMP) al parecer la fecha se almacena por programación (no por BD).

Ademas noté que es tipo de dato de TIMESTAMP es de formato diferente por ejemplo para la fecha 14 de Abril de 2006 en timestamp se almacenaría así "20060414014858" y si se fijan es un poco diferente al que postee en el primer mensaje.

Como ven , como le hago ?
__________________
___________________________

do the evolution ¡
Mineriaenlinea.com
  #4 (permalink)  
Antiguo 14/04/2006, 21:53
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Sí es timestamp, chécate este código:

Código PHP:
//
<?
echo date("D, d M Y H:i:s",1145057826);

//imprime
// Fri, 14 Apr 2006 17:37:06
?>
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #5 (permalink)  
Antiguo 14/04/2006, 22:16
Avatar de cookie  
Fecha de Ingreso: agosto-2002
Mensajes: 688
Antigüedad: 15 años, 3 meses
Puntos: 0
Uamistad, gracias por responder de nuevo

Entiendo lo que explicas, y te entiendo como formateas la fecha para mostrarla "decentemente". Pero como harias para insertar la fecha automaticamente en la base de datos (es decir sin que el usuario la escriba) en cada registro con el formato "1145057826"

COmo harías el insert de la fecha en el siguiente codifo

"INSERT INTO tabla1 (nombre,edad,direccion,fecha_registro) VALUES ('".$NOMBRE."',".$EDAD.",".$ESTATURA.", "?") ;"


Gracias por tu ayuda
__________________
___________________________

do the evolution ¡
Mineriaenlinea.com
  #6 (permalink)  
Antiguo 14/04/2006, 22:24
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
"INSERT INTO tabla1 (nombre,edad,direccion,fecha_registro) VALUES ('".$NOMBRE."',".$EDAD.",".$ESTATURA.", UNIX_TIMESTAMP(NOW())) ;"

Si fecha registro es un INT, no necesitas rodearlo con comillas. =)

EDITO

Ese NOW() es para sacarle a la base de datos el timestamp actual, pero ojo que se lo estás sacando a la base de datos.

Si quieres sacárselo a PHP, entonces usa la función time() sin argumentos, te regresa el timestamp actual.

Es importante la diferencia porque el motor de base de datos podría estar en un servidor distinto, quizá otro país y quizá lo más conveniente sería manejarlo con time().

Si están ambos en el mismo server, en principio, deberían arrojar el mismo valor cualquiera de los dos.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #7 (permalink)  
Antiguo 14/04/2006, 22:51
Avatar de cookie  
Fecha de Ingreso: agosto-2002
Mensajes: 688
Antigüedad: 15 años, 3 meses
Puntos: 0
No funciona

Aparece null cada q registro un usuario


Lo probe con time() y con now(), tal como me lo explicaste, ¿Existe otra forma de hacerlo?
__________________
___________________________

do the evolution ¡
Mineriaenlinea.com
  #8 (permalink)  
Antiguo 14/04/2006, 22:57
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... lo idóneo sería manejar el campo como lo que es (cambiarlo a tipo TIMESTAMP) para ocupar las funciones nativas de SQL referentes al manejo de fechas... pero bueno, si no puedes hacer lada al respecto, hazlo con PHP, utiliza time() como te dijeron:
Código PHP:
$datetime();
mysql_query("INSERT INTO... VALUES ('$date', ...."); 
Muestra lo que haces... un "no funciona" no dice nada.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 14/04/2006, 23:02
Avatar de Panino5001
Moderatroll
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.062
Antigüedad: 13 años, 6 meses
Puntos: 775
UNIX_TIMESTAMP() sin argumentos te da el momento actual en ese formato:

mysql> SELECT UNIX_TIMESTAMP();
+------------------+
| UNIX_TIMESTAMP() |
+------------------+
| 1072555517 |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00') |
+---------------------------------------+
| 875996580 |
+---------------------------------------+
1 row in set (0.02 sec)
  #10 (permalink)  
Antiguo 14/04/2006, 23:06
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Amigo, lo probé como te dije y funciona (ver pic).

El tipo de dato de mi prueba_id es INT AUTO_INCREMENT

El tipo de dato de mi prueba_timestamp es INT y no es necesario que sea UNSIGNED.

__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #11 (permalink)  
Antiguo 14/04/2006, 23:15
Avatar de Panino5001
Moderatroll
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.062
Antigüedad: 13 años, 6 meses
Puntos: 775
Hola uamistad, como sé que te gusta la síntesis, te recomiendo que no uses el now() como argumento de UNIX_TIMESTAMP(): no es necesario.
Saludos.
  #12 (permalink)  
Antiguo 14/04/2006, 23:16
Avatar de cookie  
Fecha de Ingreso: agosto-2002
Mensajes: 688
Antigüedad: 15 años, 3 meses
Puntos: 0
Una vez mas agradezco mucho a todos sus respuestas, evidentemente algo estoy haciendo mal, ya q a uds si les funciona.

Voy a revisar todo de nuevo

Saludos
__________________
___________________________

do the evolution ¡
Mineriaenlinea.com
  #13 (permalink)  
Antiguo 14/04/2006, 23:29
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Gracias Panino, jeje, sí compa, me gustan los códigos compactos, =) Los considero como obras de arte en mi mundo de fantasía.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #14 (permalink)  
Antiguo 26/04/2006, 16:14
 
Fecha de Ingreso: abril-2006
Mensajes: 1
Antigüedad: 11 años, 7 meses
Puntos: 0
Uamistad veo que tu sabes bien como cambiarle el formato a las fechas, tengo un problema y espero que puedas ayudarme, tengo que agarrar fechas en formato normal y pasarlo a formato de unix, el de los milisegundos desde 1970, algo asi..

Usted sabe como hacerlo con el comando date??? o cualquier otra forma....

Esque ya he buscado y no encuentro como le agradesco la ayuda que me pueda brindar...
  #15 (permalink)  
Antiguo 26/04/2006, 18:50
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
tengo que agarrar fechas en formato normal y pasarlo a formato de unix
¿y qué es una fecha en "formato normal"?; la función strtotime() te podrá servir.. pero antes la fecha tiene que estar en un formato válido.

[OT]
Cita:
sí compa, me gustan los códigos compactos
El foro de PERL esta más abajito
[/OT]

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #16 (permalink)  
Antiguo 26/04/2006, 19:32
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
También puedes usar mktime()

Ahí en php.net se mencionan varios ejemplos. Si tú vas a tomar fechas en 'formato normal', digamos en campos separados: $dia, $mes, $anio, utiliza esa función para construir tu unix_timestamp.

Saluting everyone.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
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 07:17.