Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: gAb1 en 19 Mayo 2015, 01:44 am



Título: strtotime no convierte correctamente
Publicado por: gAb1 en 19 Mayo 2015, 01:44 am
Hola buenas, estoy intentando pasar unas fechas a formato entero de unix con la función strtotime() pero devuelve dos horas menos; al solo ser fecha sin hora pues al convertir unix a un formato leible deberia verse 00:00:00, pero en lugar de eso aparece 22:00:00 y un dia menos.

Es para almacenar fechas de nacimiento en la db y prefiero que se almacenen en formato entero, por ejemplo mi fecha de nacimiento la introduzco en el campo:
04/04/1993 o 04-04-1993 (en este caso da igual, pero tendré que decidir si uso formato americano o europeo)
y strtotime devuelve:
Código
  1. print strtotime($client_info[3]);
  2. //733874400 -> Sat, 03 Apr 1993 22:00:00 GMT
Para saber si se ha convertido bien uso una herramienta de conversion, por ejemplo onlineconversion y me encuentro con el problema. Sin embargo si trato de convertir mi fecha usando esta web me devuelve:
Citar
733881600 -> Sun, 04 Apr 1993 00:00:00 GMT
Ese unix timestamp si que es correcto.

¿A alguien le ha pasado esto? ¿Como puedo solucionarlo?

Gracias!

Edito: no creo que sea por el filtrado...

Código
  1. $client_info = filter_input(INPUT_POST, 'client_info', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY);


Título: Re: strtotime no convierte correctamente
Publicado por: MinusFour en 19 Mayo 2015, 03:08 am
¿Has configurado la zona horaria de PHP? Al entregar la fecha se usa la zona horaria establecida y se realiza una conversion a UTC posteriormente.

http://php.net/manual/en/function.date-default-timezone-set.php