Al momento de realizar un nuevo desarrollo en ocasiones es necesario agregar la fecha, pero muchas veces los servidores o la configuración nos muestran la fecha en un formato que no esperamos.

Formas de mostrar una fecha en PHP

La función más común es date(), con ella podemos obtener la fecha en el formato que deseemos de acuerdo a las opciones existentes pero lamentablemente no admite cambio de idioma entonces las fechas que obtengamos serán mostradas en inglés.

Por ejemplo si utilizamos el siguiente formato:

echo date('l jS \of F Y h:i:s A');Lenguaje del código: PHP (php)

Nos mostrará algo así:

Thursday 16th of April 2020 02:32:56 AMLenguaje del código: CSS (css)

A pesar de que en el momento que llamo la función son las 9:32 PM del 16 de abril 2020 para ver que representa cada uno de los caracteres de formato pueden entrar a la documentación de date().

Ahora utilizaremos strftime() que muestra la fecha y hora de acuerdo a la configuración local y además puede cambiarse su idioma:

strftime("%A %d of %B %Y %r");Lenguaje del código: JavaScript (javascript)

SI lo utilizamos normalmente nos dará algo así:

Thursday 16 of April 2020 02:40:27 AMLenguaje del código: CSS (css)

Ahora vamos a hacer un cambio de idioma y después arreglaremos la hora a la zona horario que queremos setlocale() que nos permite asignar la información local por ejemplo:

setlocale(LC_ALL,'es_ES');
echo date('l jS \of F Y h:i:s A');
echo strftime("%A %d de %B %Y %r");Lenguaje del código: PHP (php)

Y eso nos dará como resultado algo así:

Thursday 16th of April 2020 03:03:12 AM
jueves 16 de abril 2020 03:03:12 AMLenguaje del código: CSS (css)

Con esto usando strftime() ya nos muestra la fecha en español gracias a setlocale() aunque en date no hay cambios, ahora corregiremos la hora de acuerdo a la zona horaria que necesitemos utilizando date_default_timezone_set() que nos permite asignar una zona horaria independientemente del servidor utilizando la lista de zonas horarias admitidas.

date_default_timezone_set('America/Mexico_City');Lenguaje del código: JavaScript (javascript)

Cambiamos un poco el código y quitamos date() ya que no lo usaremos:

date_default_timezone_set('America/Mexico_City');
setlocale(LC_ALL,'es_ES');
echo strftime("%A %d of %B %Y %r");Lenguaje del código: PHP (php)

Y con ello ya tendremos la fecha en español y correspondiente a la zona horaria esperada:

miércoles 15 of abril 2020 10:10:00 PMLenguaje del código: CSS (css)

Espero les sirva en sus siguientes proyectos.