¿Hay una manera sencilla de convertir el formato de una fecha a otro formato de fecha en PHP?
Tengo esto:
1 2 3 | $oldDate = date('y-m-d-h-i-s'); //Esto funciona $aux = strtotime($oldDate); //Esto devuelve false $newDate = date('Y-m-d H:i:s', $aux); //Devuelve 1970-01-01 00:00:00 |
¿Qué estoy haciendo mal?
El segundo parámetro que le pasas a date() tiene que ser un parámetro adecuado, es decir, los segundos desde el 1 de enero de 1970. La cadena que le pasas no la reconoce.
Utiliza strtotime()
para convertir una cadena de fecha en un timestamp, aunque ni siquiera strtotime() reconocerá y-m-d-h-i-s
.
PHP 5.3 en adelante
Utilizar DateTime::createFromFormat
. Permite especificar una máscara exacta utilizando la sintaxis de date() para analizar la fecha entrante.
PHP 5.2 y anterior
Tienes que analizar los elementos (año, mes, día, hora, minuto, segundo) utilizando substr() y pasar los resultados a mktime () para construir un timestamp.
¡Un montón de trabajo! Te recomiendo usar un formato diferente que strtotime() pueda reconocer. Prueba con esto:
1 2 3 | $oldDate = date('l, F d y h:i:s'); // devuelve Sabado, Enero 30 10 02:06:34 $auxTS = strtotime($oldDate); $newDate = date('Y-m-d H:i:s', $auxTS); |
Por favor, logueate o Regístrate para Realizar una Pregunta