Foros del Web » Programando para Internet » PHP »

Problema con el formateo de una fecha con strtotime

Estas en el tema de Problema con el formateo de una fecha con strtotime en el foro de PHP en Foros del Web. Hola a todos, Tengo tres campos en una tabla que son de tipo DATE. El caso es que al recuperar los datos y mostrarlos por ...
  #1 (permalink)  
Antiguo 21/07/2009, 11:45
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Problema con el formateo de una fecha con strtotime

Hola a todos,

Tengo tres campos en una tabla que son de tipo DATE.
El caso es que al recuperar los datos y mostrarlos por pantalla quiero mostrar el formato típico de dd/mm/aaaa en lugar de aaaa-mm-dd que guarda MySQL.
Para ello utilizo la función date con strtotime:

Código PHP:
$date_format date("d/m/Y",strtotime($field['value']));
echo 
"<br>antes -> ".$field['value']." despues -> ".$date_format
Mi problema es que, no se pq, pero de esas 3 fechas una me falla, es decir, en lugar de devolverme la misma fecha pero con el formato que quiero me devuelve: 01/01/1970.

Aquí os pongo todas las fechas y lo que me hace:

Código PHP:
antes -> 1956-01-11 despues -> 11/01/1956
antes 
-> 1009-01-01 despues -> 01/01/1970 //Falla!!
antes -> 2009-07-21 despues -> 21/07/2009 
El caso es que antes tenía en lugar de tipo DATE el tipo TIMESTAMP y me lo hacía correctamente pero por questión de rango de fechas he tenido que cambiarlo para ampliarlo.

¿Alguién me puede decir pq la fecha del año 1009 no me la formatea correctamente?

Supongo que debe ser precisamente por el año pero no se pq ni como arreglarlo.
__________________
Perdida en el mundo del conocimiento
  #2 (permalink)  
Antiguo 21/07/2009, 11:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con el formateo de una fecha con strtotime

Falla porque el año 1009 no esta considerado para tratarse como timestamp, de hecho el 1 de enero de 1970 es 0 (cero), cualquier cosa menor te devolvera siempre ese resultado.

Seguro que necesitas una fecha del año 1009?, no sera algun error? (perdon, ya lei bien, no es error)

Podrias tratar de separarlos con explode:

Código php:
Ver original
  1. // Separas fecha y hora del formato almacenado en la tabla
  2. list($fecha, $hora) = explode(' ', $field['value']);
  3.  
  4. // Separas año, mes y dia
  5. list($anio, $mes, $dia) = explode('-', $fecha);
  6.  
  7. echo "$dia-$mes-$anio";
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 21/07/2009, 11:56
 
Fecha de Ingreso: enero-2009
Mensajes: 11
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Problema con el formateo de una fecha con strtotime

tb puedes formatearlo asi:

list($anio,$mes,$dia) = split("-",$field['value']);
echo "<br>antes -> ".$field['value']." despues -> ".$dia."/".$mes."/".$anio;
  #4 (permalink)  
Antiguo 21/07/2009, 12:49
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema con el formateo de una fecha con strtotime

Muchas gracias por contestar tan rápido.

He estado haciendo más pruebas y hasta la fecha 1901-01-01 me lo hace mal pero en el año 1902 ya me lo empieza a hacer bien.

Lo haré tal y como decís con un explode o un split y así me ahorro problemas.

Gracias por la ayuda!!!
__________________
Perdida en el mundo del conocimiento
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 15:03.