date

Nuevo en la versión 1.1: La compatibilidad con la zona horaria se añadió en Twig 1.1.

Nuevo en la versión 1.5: La compatibilidad para el formato de fecha predefinido se añadió en Twig 1.5.

Nuevo en la versión 1.6.1: El soporte para la zona horaria predeterminada se añadió en Twig 1.6.1

Nuevo en la versión 1.11.0: La introducción del valor false para la zona horaria se introdujo en Twig 1.11.0

El filtro date es capaz de formatear una fecha con una forma suministrada explícitamente:

{{ post.published_at|date("m/d/Y") }}

El filtro date acepta cadenas (estas deben ser compatibles con los formatos de la función strtotime), instancias de DateTime o DateInterval. Por ejemplo, para mostrar la fecha actual, filtra la palabra "now":

{{ "now"|date("m/d/Y") }}

Para escapar palabras y caracteres en el formato de fecha usa \\ al frente de cada carácter:

{{ post.published_at|date("F jS \\a\\t g:ia") }}

Si el valor pasado al filtro date es null, por omisión devolverá la fecha actual. Si en lugar de la fecha actual quieres una cadena vacía, utiliza un operador ternario:

{{ post.published_at is empty ? "" : post.published_at|date("m/d/Y") }}

Si no proporcionas un formato, Twig utilizará el formato predefinido: F j, Y H:i. Puedes cambiar fácilmente el predefinido llamando al método setDateFormat() en la instancia de la extensión core. El primer argumento es el formato predefinido para fechas y el segundo es el formato predeterminado para los intervalos de fecha:

$twig = new Twig_Environment($loader);
$twig->getExtension('core')->setDateFormat('d/m/Y', '%d days');

Zona horaria

De manera predefinida, la fecha se muestra aplicando la zona horaria predefinida (la especificada en php.ini o declarada en Twig —ve más adelante—), pero la puedes sustituir explícitamente especificando una zona horaria (timezone):

{{ post.published_at|date("m/d/Y", "Europe/Paris") }}

Si la fecha ya es un objeto DateTime, y si quieres mantener la zona horaria actual, pasa false como el valor de la zona horaria:

{{ post.published_at|date("m/d/Y", false) }}

Puedes fijar globalmente la zona horaria predefinida llamando a setTimezone():

$twig = new Twig_Environment($loader);
$twig->getExtension('core')->setTimezone('Europe/Paris');

Argumentos

  • format: El formato de fecha
  • timezone: La zona horaria para fechas
Bifúrcame en GitHub