PHP - Pasar fecha > 2038 en fecha española

 
Vista:
Imágen de perfil de Jordi
Val: 9
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Pasar fecha > 2038 en fecha española

Publicado por Jordi (10 intervenciones) el 20/12/2017 13:11:01
Hola buenas, para el que le haya pasado sera una tontería, pero a mi me esta dando la lata...

En este código se me convierte la fecha de (Y-m-d) a formato español (d-m-Y)

1
$material['data'] = date('d-m-Y', strtotime($material['data']));

El problema esta en que si el año es superior a 2037 me sale en fecha (01-01-1970).

He leído que esto es un problema de php, que hace un calculo con mili-segundos y con mas de 2037 no puede, que con la versión de xampp de servidor php con 64bits funcionaria, pero no es el caso...

Hay alguna solución para esto?

Muchas gracias anticipadas al buen samaritano que me ayude :)

Saludoos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar fecha > 2038 en fecha española

Publicado por kip (877 intervenciones) el 20/12/2017 13:31:46
Hola, esto no es problema de PHP en si, es mas bien de la arquitectura sobre la que estas ejecutando el codigo, debes saber que el valor maximo de un entero en una arquitectura x32|x86 es 2147483647, siendo exactamente la fecha 2038-01-19 03:14:07 y es por eso que no puedes sobrepasar esta fecha ya que este entero se transforma en -2147483647 y va hacia atras dandote como resultado aquel problema, esto es conocido como el problema Y2K38 https://es.wikipedia.org/wiki/Problema_del_a%C3%B1o_2038, te recomiendo usar una arquitectura de x64...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Jordi
Val: 9
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Pasar fecha > 2038 en fecha española

Publicado por Jordi (10 intervenciones) el 20/12/2017 14:05:14
Si eso había leído, pero como he dicho no puedo solucionarlo cambiando la arquitectura a x64... No hay alguna otra solución?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Pasar fecha > 2038 en fecha española

Publicado por kip (877 intervenciones) el 20/12/2017 14:12:16
Usa la clase DateTime para el manejo de las fechas, asi:

1
2
3
4
5
$fecha= '2040-01-02';
 
$nFecha= new DateTime($fecha);
 
echo $nFecha->format('d-m-Y');

http://php.net/manual/es/class.datetime.php

Debes tener una version mayor o igual a la 5.2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Jordi
Val: 9
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Pasar fecha > 2038 en fecha española

Publicado por Jordi (10 intervenciones) el 20/12/2017 16:43:47
Ahora sii!!

Muchas gracias kip!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar