Convertir una fecha a un formato deseado con PHP

02 de Feb, 2017

Supongamos que tenemos una fecha que hemos obtenido de un archivo y la hemos guardado en una variable de tipo string con PHP, pero esta fehca la necesitamos trabajar en PHP, cambiar de formato, o simplemente usarla para calcular fechas futuras o pasadas.

Para ello PHP tiene una clase llamada DateTime donde podemos indicarle a PHP cual es el formato establecido en esta variable del tipo string.

Tenemos la fecha

$date = '01 Dec, 2015'

Con la llamada DateTime::createFromFormat, vamos a crear una variable del tipo date/time indicando el formato que tiene nuestro string en este caso tenemos d M, Y (dia/ mes en letras/ la coma/ y el año de 4 dígitos)

Nos quedaría ejecutarlo

$exd = DateTime::createFromFormat('d M, Y', $date);

Ahora para que nos sirve esto, pues imaginemos que recibimos esa fecha en el formato arriba indicado pero queremos mostrarlo en un formato 2015-12-01

Para ello solo tenemos ahora que dar este formato a la nueva variable $exd

$exd_new = date_format($exd, 'Y-m-d'); // Escojemos cualquier formato que deseemos
echo $exd_new; // nos imprimira 2015-12-01

También nos serviría si por ejemplo queremos sumar o restar 3 meses a la fecha simplemente usamos strtotime

$exd_new = strtotime ( '+3 month' , strtotime ( $exd_new ) ) ;
$exd_new = date ( 'Y-m-j' , $exd_new );
 
echo $exd_new;

Si queremos restar simplemente cambiamos +3 por -3