{% extends "templates/_base.html" %} {% block title %}Django Dana Time{% endblock %} {% set date = "February 2, 2014" %} {% block styles %} {% endblock %} {% block content %}

Updated February 2, 2014

Django Dana Time

If Django Humanize were a little more human

This project is open source. The code can be found at https://github.com/danasilver/django-dana-time.

Purpose

Django Humanize is a great tool to produce human readable times, dates, and numbers. However humanize.naturaltime falls back to Django's timesince template filter if the date is more than a day old. Timesince might return something like "20 days, 5 hours," which is overly verbose for how long ago the date was. It's more useful to know a month and date at that point than mentally counting back 20 days and 5 hours. This becomes even more problematic when the date is over a year ago.

Django Dana Time solves this problem by falling back to real times and dates that humans can quickly understand when the date is more than a day old. See the formatting examples below for full details.

Formatting

timedelta danatime
1 second a second ago
2 - 60 seconds 2 - 60 seconds ago
1 minute a minute ago
2 - 60 minutes 2 - 60 minutes ago
1 hour, same day an hour ago
2 - 6 hours, same day 2 - 6 hours ago
6 - 24 hours, same day 4:26 pm (12 hour)
< 24 hours, same year Aug 10
previous year 8/10/12

Use

Save danatime.py in your Django app or project.

Load the filter:


{% raw %}
{% load danatime %}
{% endraw %}

Use the filter:


{% raw %}
{% mytime|danatime %}
{% endraw %}

Development

Issues and pull requests are welcome. You can open one at https://github.com/danasilver/django-dana-time/issues.

{% include "includes/footer.html" %} {% endblock %}