Foros del Web » Programando para Internet » PHP »

Malditas fechas

Estas en el tema de Malditas fechas en el foro de PHP en Foros del Web. Estoy un poco aproblemado trabajando con fechas, simplemente quiero mostrar una fecha y no me sale de la forma que yo quiero. En la base ...
  #1 (permalink)  
Antiguo 08/01/2004, 00:08
 
Fecha de Ingreso: enero-2004
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 0
Malditas fechas

Estoy un poco aproblemado trabajando con fechas, simplemente quiero mostrar una fecha y no me sale de la forma que yo quiero.

En la base mysql tengo un campo timestamp el cual paso a una variable $Fec_sol

al momento de redefinir la variable lo hago de la siguiente forma:

$Fec_sol = date("d/m/Y",$Fecsol);

la fecha que está en la base es "20040108124522" por lo que debería dejar en variable 08/01/2004, pero el sistema insiste en dejarme el 31/12/1969, ya estoy chato.

Si alguien sabe el correcto uso de esta funcion con timestamp por favor ayudaaaaaaaaaaaaa.
  #2 (permalink)  
Antiguo 08/01/2004, 00:39
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 14 años, 3 meses
Puntos: 2
Hola, he estado revisando tu código y me parece que es error del valor que le das, el timestamp del 8/1/2004 es 1073538000, mira:

$v1= mktime(0,0,0,1,8,2004);
echo $v1;
si haces: echo date("d/m/Y",$v1); te retorna 08/01/2004
ahora bien con el valor que das:

$f="20040108124522";

echo date('d/m/Y',$f); retorna 18/01/2038

No se las condiciones para la estructura de tu bd, pero porqué no trabajas con el campo tipo date, y te ahorrarías muchos problemas
Suerte y saludos!
__________________
Jose A
  #3 (permalink)  
Antiguo 08/01/2004, 00:47
 
Fecha de Ingreso: enero-2004
Mensajes: 77
Antigüedad: 13 años, 11 meses
Puntos: 0
Hola J_aspillaga, gracias pero mira estuve viendo el php.ini y encontre algo sobre las fechas.

Resulta que mi base de datos tiene el campo timestamp, y cuando yo lanzo el registro a la variable, sin ni siquiera tocarlo me deja la variable como dd-mm-YY siendo que debería tirarlo sin las variables.

En el php.ini hay algo que te permita dejar en on si quieres las fechas del tipo dd-mm-YYYY o en Off si quieres lanzarlas como vienen desde el SQL. Voy a probar eso y veremos.

Ahora bueno uso el timestamp, porque hay muchas funciones que simplemente aplicandolas me permiten sacar la fecha y hora pero debo hacer que primero funcione.

Mauricio
Chile.
  #4 (permalink)  
Antiguo 08/01/2004, 07:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Mysql trabaja las fechas en campos TIMESTAMP según detalla:

http://www.mysql.com/doc/en/Column_types.html
http://www.mysql.com/doc/en/DATETIME.html

Si quisieras almacenar un TIMESTAMP de Unix (generado desde PHP) deberias usar un campo INT(11) o similar.

O bien usar el formato TIMESTAMP de Mysql (YYYYMMDDHHMMSS) y usar UNIX_TIMESTAMP() a la hora de leer ese dato para que puedas usar tu date() en PHP directamente .. Pero, no hace falta "mezclar" a PHP en todo esto .. Mysql usando sus tipos de datos correctos y la función DATE_FORMAT() ... y NOW() o CURDATE() cuando te haga falta obtener la fecha del servidor .. te sobraría.

Si usases campos tipo DATE o DATETIME, tus datos de tu BD serian más legibles (al humano) si abres tu tabla con cualquier GUI para Mysql ..

Si quieres ver más sobre estas funciones de "MYSQL":
http://www.mysql.com/doc/en/Date_and...functions.html

Para guardar una fecha en un campo DATE, DATETIME o similar .. sólo debes seguir su formato (en los links que dejé lo dice) como si de una cadena de texto se tratase (lo comento por si tienes que obtener esas fechas por un formulario por ejemplo bajo "acción humana" .. Recuerda para esos casos que debes formatear lo que te ingresen al formato que tiene el campo que uses .. sino veras que genera fechas no correctas por qué no están en el rango.)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 14:45.