> For the complete documentation index, see [llms.txt](https://docs.devhub.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devhub.com/themes-and-custom-templates/hide-content-based-on-date.md).

# Using date and time in templates

## Template utilities

### `datefmt`

Format a date/time to output a specific format.

| Example                            | Output          |
| ---------------------------------- | --------------- |
| `{{ timestamp\|datefmt('long') }}` | January 1, 2024 |
| `{{ timestamp\|datefmt('Y') }}`    | 2024            |

More examples of the formats available can be found here: <http://babel.pocoo.org/en/latest/dates.html#date-fields>

### `timefmt`

Format a time to output a specific format.

| Example                             | Output  |
| ----------------------------------- | ------- |
| `{{ timevalue\|timefmt('short') }}` | 3:23 PM |
| `{{ timestamp\|timefmt('a') }}`     | PM      |

More examples of the formats available can be found here: <https://babel.pocoo.org/en/latest/dates.html#time-fields>

### `now`

This is quick access to the current date and time

```markup
<p>The current date is: {{ now|datefmt('MMMM d') }}</p>
```

Output

```markup
<p>The current date is: January 1</p>
```

### `day_name`

Output the name of the day using the "0 index" of the day of the week.

```markup
{{ 3|day_name }}
```

Output

```markup
Wednesday
```

### `to_date`

Utility to parse a date from a string

```markup
{{ '2021-09-01'|to_date }}
```

Optionally, you can also pass a format to the parsing

```markup
{{ '9/1/2021'|to_date(format='%m/%d/%y') }}
```

### `to_datetime`

Utility to parse a date and time from a string

```
{{ '2021-09-01 15:23:00'|to_datetime }}
```

### `to_time`

Utility to parse a time from a string

```
{{ '15:23'|to_time }}
```

Optionally, you can also pass a format to the parsing

```
{{ '1523'|to_time(format='%H%M') }}
```

### `from_timestamp`

Can be used to convert unix timestamps (i.e. an integer) into date/time to be used by other functions.

```markup
{{ 1284101485|from_timestamp|datefmt('long') }}
```

Output

```markup
September 9, 2010
```

## Hide content based on date

Using the advanced jinja2 templating to hide a piece of content depending on the date. This can be used to have something show up before/after/during a date range.

This uses our `to_date` jinja filter. Take note of the greater than and less than operators.

The `to_date` is parsed as the first minute and hour of the day so using greater and less than operators is the best way to write the conditionals.

## Today, future, or past comparisons

### `is_today`

Show something if the date is today

```markup
{% if '2018-12-11'|to_date|is_today %}
  <p>I will show if Dec 12, 2018 is today</p>
{% endif %}
```

### `is_future`

Show something if the date is in the future

```markup
{% if '2018-12-11'|to_date|is_future %}
  <p>I will show if Dec 12, 2018 is in the future</p>
{% endif %}
```

### `is_past`

Show something if the date is in the past

```markup
{% if '2018-12-11'|to_date|is_past %}
  <p>I will show if Dec 12, 2018 is in the past</p>
{% endif %}
```

### Combining the above filters

Show something if the date is today or in the future

```markup
{% if '2018-12-11'|to_date|is_today or '2018-12-11'|to_date|is_future %}
  <p>I will show if Dec 12, 2018 is today or is in the future</p>
{% endif %}
```

## Using now to compare to the current day and time

The `now` is the current date and time

### Starting on a date

```markup
{% if now > '2018-12-11'|to_date %}
  <p>I will start showing on Dec 11, 2018</p>
{% endif %}
```

### Up to a date

```markup
{% if now < '2018-12-11'|to_date %}
  <p>I will stop showing on Dec 11, 2018</p>
{% endif %}
```

### Date range

```markup
{% if now > '2018-12-01'|to_date and now < '2019-01-01'|to_date %}
  <p>I will show for the whole month of December</p>
{% endif %}
```
