A safe date function in twig that will not set null dates to today.

0.1 2017-10-27 15:50 UTC

This package is not auto-updated.

Last update: 2021-05-05 12:21:09 UTC


Build Status

Simple filter in twig to help avoid problems with things like: {{ null|date('Y-m-d') }}

There are ways around it using twig - the documentation even states:

If the value passed to the date filter is null, it will return the current date by default. If an empty string is desired instead of the current date, use a ternary operator:

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

But often, this is overlooked.


  • PHP >= 5.6
  • Twig ^1.27|^2.0

Installation & Usage

composer require vivait/twig-safe-date

Once required, register the extension with Twig:

$twig = new \Twig_Environment($loader);
$twig->addExtension(new TwigSafeDateExtension);

Once registered, you can use the filter date to output dates as before, with the change that: null values will get turned into known content (default: -) rather than today's date

The default format is 'F j, Y H:i.' (the same as the core date filter in Twig)

{{ post.posted_at|date }}

If you wish to change the format of the date, pass it a parameter with your preferred format:

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

If post.posted_at is null, then by default the filter will output -, if you wish to change this to a different value, pass a new default as the third parameter:

{{ post.posted_at|date("d/m/Y", "Europe/London" "Content if null") }}