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');
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');
- format: El formato de fecha
- timezone: La zona horaria para fechas