/** * Converts a date to the given format. * * <pre> * {{ post.published_at|date("m/d/Y") }} * </pre> * * @param Twig_Environment $env A Twig_Environment instance * @param DateTime|DateInterval|string $date A date * @param string $format A format * @param DateTimeZone|string $timezone A timezone * * @return string The formatter date */ function twig_date_format_filter(Twig_Environment $env, $date, $format = null, $timezone = null) { if (null === $format) { $formats = $env->getExtension('core')->getDateFormat(); $format = $date instanceof DateInterval ? $formats[1] : $formats[0]; } if ($date instanceof DateInterval || $date instanceof DateTime) { if (null !== $timezone) { $date->setTimezone($timezone instanceof DateTimeZone ? $timezone : new DateTimeZone($timezone)); } return $date->format($format); } return twig_date_converter($env, $date, $timezone)->format($format); }