Mezzanine ブログの記事公開日の日付フォーマットを変更する


Mezzanine の デフォルトテンプレートの日付表示は、django の timesince を使った 3 週間, 5 日 前 というフォーマットの日付表示になります。
この表示がわかりやすいかというと個人的にはわかりずらかったので、日付表示を変更してみました。

変更時に実施したことを記載します。


Template 上の 日付記述

mezzanine/blog_post_list.html at master · stephenmcd/mezzanine

blog_post_list.html 上の以下の記述が、公開日付の記載箇所になります。

{% blocktrans with sometime=blog_post.publish_date|timesince %}{{ sometime }} ago{% endblocktrans %}


変更後の記述

2017-09-16 (3 週間, 5 日 前) という記述にしたいです。


他の考慮する要素

SEO対策に役立つかもしれない、普段あまり注目されていないタグたちまとめ(HTML 5.1版) - Qiita の time タグを使います。


Django Template 上で、日付の形式を指定する方法

以下、Stack Overflow の文書が参考になりました。
How to format dateTime in django template? - Stack Overflow

Django の 設定 ドキュメントにも日付が記載があります。
設定 | Django documentation | Django

Template 上は、以下記述で、ISO形式の日付が、

{{ value|date:"c"}}

以下記述で、Y-m-d 形式での日付が取得できそうです。

{{ value|date:'Y-m-d' }}


Template の記述を変更する

以下記述に変更しました。

<time datetime="{{ blog_post.publish_date|date:"c"}}">{{ blog_post.publish_date|date:'Y-m-d' }}</time> ({% blocktrans with sometime=blog_post.publish_date|timesince %}{{ sometime }} ago{% endblocktrans %})

参考記事には、itemprop="datePublished" の記載がありますが、構造化マークアップを JSON-LD で記述しているので、対象の記述は削除しました。

以上です。

コメント

カテゴリー