Formato de fecha y hora

Personalizar el formato de fecha y hora 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.

Formato de fecha y hora

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

Arriba ↑

Ejemplos de cadenas de formato 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 am
  • F j, Y – Diciembre 3, 2019
  • F, Y – Diciembre, 2019
  • g:i a – 12:50 am
  • g:i:s a – 12:50:48 am
  • l, F j, Y – Martes, Diciembre 3, 2019
  • M j, Y @ G:i – Dic 3, 2019 @ 0:50
  • Y/m/d \a \l\a\s g:i A – 2019/12/03 a las 12:50 AM
  • Y/m/d \a \l\a\s g:ia – 2019/12/03 a las 12:50am
  • Y/m/d g:i:s A – 2019/12/03 12:50:48 AM
  • Y/m/d – 2019/12/03

Arriba ↑

Anulación del formato de los ajustes generales 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.

Arriba ↑

Idioma 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' );

Arriba ↑

Escape 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