Personalizar el formato de fecha y hora
Para mostrar o devolver la información de la fecha y la hora, se usan ciertas etiquetas de funciones de WordPress; the_date() y the_time() son ejemplos de esto.
Por defecto, estas funciones mostrarán o devolverán la fecha y la hora en el formato que esté establecido en Administración > Ajustes > Generales. Este es el lugar en el que la personalización de la fecha y la hora afectará a toda la instalación de WordPress.

En la captura de pantalla, observa la cadena de caracteres que aparece junto a cada formato de fecha y hora. Esta cadena se denomina cadena de formato. Cada letra representa una parte específica de la fecha u hora.
Por ejemplo, la cadena de formato:
l, F j, Y
crea una fecha que se ve así (fíjate que las comas se leen literalmente):
Lunes, Diciembre 23, 2019
Esto es lo que representa cada carácter de formato en la cadena anterior:
l
= Nombre completo del día de la semana (letra «L» minúscula).F
= Nombre completo del mes.j
= El día del mes.Y
= El año con 4 dígitos (la letra «Y» minúscula devuelve los dos últimos dígitos del año).
Los caracteres de formato están estandarizados y son usados globalmente en el lenguaje de programación PHP. Como WordPress está escrito en el lenguaje de programación PHP, puedes usar la tabla de caracteres de formato de fecha y hora directamente desde la web de PHP.
Aquí tienes una tabla con algunos de los elementos más útiles que se encuentran allí:
Día del mes | ||
---|---|---|
d |
Numérico, con ceros iniciales | 01–31 |
j |
Numérico, sin ceros iniciales | 1–31 |
S |
El sufijo inglés para el día del mes | st, nd, rd o th, para 1st, 2nd, 3rd o 15th |
Día de la semana | ||
l |
Nombre completo (letra «L» minúscula) | Domingo – Sábado |
D |
Las tres primeras letras del nombre | Lun – Dom |
Mes | ||
m |
Numérico, con ceros iniciales | 01–12 |
n |
Numérico, sin ceros iniciales | 1–12 |
F |
Nombre completo | Enero – Diciembre |
M |
Las tres primeras letras del nombre | Ene – Dic |
Año | ||
Y |
Numérico, 4 dígitos | Ej.: 1999, 2019 |
y |
Numérico, 2 dígitos | Ej.: 99, 19 |
Hora | ||
a |
Minúscula | am, pm |
A |
Mayúscula | AM, PM |
g |
Hora, 12 horas, sin ceros iniciales | 1–12 |
h |
Hora, 12 horas, con ceros iniciales | 01–12 |
G |
Hora, 24 horas, sin ceros iniciales | 0-23 |
H |
Hora, 24 horas, con ceros iniciales | 00-23 |
i |
Minutos, con ceros iniciales | 00-59 |
s |
Segundos, con ceros iniciales | 00-59 |
T |
Abreviatura de la zona horaria | Ej.: EST, MDT… |
Fecha y hora completa | ||
c |
ISO 8601 | 2019-12-23T19:57:21+00:00 |
r |
RFC 2822 | Lun, 23 Dic 2019 19:57:21 +0100 |
U |
Marca de tiempo Unix (segundos desde la época Unix) | 1577127441 |
Ejemplos de cadenas de formato
Aquí puedes ver algunos ejemplos de formato de fecha con el resultado de salida.
F j, Y g:i a
– Diciembre 3, 2019 12:50 amF j, Y
– Diciembre 3, 2019F, Y
– Diciembre, 2019g:i a
– 12:50 amg:i:s a
– 12:50:48 aml, F j, Y
– Martes, Diciembre 3, 2019M j, Y @ G:i
– Dic 3, 2019 @ 0:50Y/m/d \a \l\a\s g:i A
– 2019/12/03 a las 12:50 AMY/m/d \a \l\a\s g:ia
– 2019/12/03 a las 12:50amY/m/d g:i:s A
– 2019/12/03 12:50:48 AMY/m/d
– 2019/12/03
Anulación del formato de los ajustes generales
Las funciones para la fecha y la hora aceptan la cadena de formato como un parámetro para anular el formato de fecha y hora por defecto en ciertos lugares de los archivos de los temas o plugins. Al igual que en los ajustes generales, esta cadena de formato es una plantilla de caracteres en la que cada carácter representa una parte específica de la fecha o la hora.
Dentro del archivo de la plantilla, configurar la cadena de formato de la fecha y la hora como un parámetro para la etiqueta de la plantilla the_time()
, sería algo parecido a esto:
Publicado el <?php the_time( 'l, j \d\e F \d\e Y' ); ?>.
Que se mostrará en la portada de tu sitio del siguiente modo:
Publicado el Lunes, 23 de diciembre de 2019.
Idioma
Para adaptar el idioma de la fecha y la hora, usa la función date_i18n(). La función date_i18n()
se comporta, básicamente, como la función date() de PHP, excepto que también traduce al idioma actual del sitio cosas como los nombres de los meses, los días de la semana y similares. Puedes reemplazar una llamada a date()
con una llamada a date_i18n()
, usando los mismos argumentos.
$date = date_i18n( 'F j, Y' );
$time = date_i18n( 'g:i a' );
Como alternativa, puedes envolver tu formato predefinido en __() o en _e() para permitir que los traductores ajusten la fecha y la hora al formato de idioma adecuado. Si lo haces, entonces también deberías incluir un comentario para el traductor, de forma que los traductores sepan a qué formato de fecha te estás refiriendo y dónde se usa, para que puedan convertirlo con precisión.
__( 'Y/m/d g:i:s a', 'textdomain' );
Escape
Algunas letras no tienen un formato asociado en la función de fecha de PHP. Por ejemplo, una x
pasada en la cadena de formato devolverá actualmente una x
literalmente. Sin embargo, esto puede cambiar en algún momento en el futuro y la x
puede tener un formato asociado a ella.
Esto es por lo que siempre debes escapar con una \
los caracteres literales en una cadena de formato de fecha, En el siguiente ejemplo, fíjate que se ha escapado cada letra de la palabra de
.
date_i18n( __( 'l, j \d\e F \d\e Y', 'textdomain' ) );
Este ejemplo se mostrará en la portada de tu sitio del siguiente modo:
Lunes, 23 de diciembre de 2019