【Django1.4】TwitterやFacebookみたいに時刻を何秒前、何分前、何時間前、と表示する

現在から時刻を引いて何秒前、何分前、何時間前と出力する何かを自作するのはなんとなく面倒なので、 そのような機能を持ったフィルターはないかと探した。

timesince は微妙

一応何もしなくてもtemplateに例えば

{{ rows.created_at|timesince }}

と記述すれば今からの時間を勝手に計算して、勝手に整形して出力してくれるが、表示がなんとなくわかりづらい。あと何秒前かがない。

timesinceよりはdjango.contrib.humanize

humanizeはデータを人間に見やすくするフィルターのセットだ。

使い方

実際に使う

naturaltimeがtimesinceの上位互換だ。

...
{% load humanize %}
...
{{ rows.created_at|naturaltime }}
...

ちゃんと日本語で表示してくれるから嬉しい

jQueryを使ってリアルタイムに分前を表示