• 2018-07-04
ウズマスター戦記
ウズマスター戦記 https://www.uzumax.org/2018/07/django-now.html

Djangoのテンプレートタグ 「now」 現在日時

Djangoには「now」なんてタグがあるんですね。

その名のとおり、現在日時を表示するタグです。

頭の固いライブラリだと日時形式であれば全部一律という対応をしがちですが、Djangoは痒い所に手が届くように作られています。



LANGUAGE_CODEとTIME_ZONEの影響を受ける

本題に行く前にご注意です。

nowタグはsetting.pyに記述されている「LANGUAGE_CODE」と「TIME_ZONE」の影響を受けます。

初期状態だと英語仕様になっています。

このブログは日本を想定していますので、設定を日本にすることを忘れないでください。

setting.py

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'

#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'

基本フォーマット

基本的なサンプルとして「yyyy年MM月DD日 HH:mm」形式で表示する書き方は以下です。
<!-- 2018年07月04日 16:04 -->
{% now "Y年m月d日 H:i" %}

Python純正とは違う、特有のフォーマットです。
これ以外のフォーマットを使う場合は、dateフィルターの説明をご確認ください。


プリセット

「yyyy/MM/dd」みたいなよくある形式は「プリセット」という形で指定して細かく書かなくても良いように用意されています。

<!-- 2018年7月4日 -->
{% now "DATE_FORMAT" %}

<!-- 2018年7月4日16:10 -->
{% now "DATETIME_FORMAT" %}

<!-- 2018/07/04 -->
{% now "SHORT_DATE_FORMAT" %}

<!-- 2018/07/04 16:10 -->
{% now "SHORT_DATETIME_FORMAT" %}

便利ですね。

終わりに

nowなんて知らなくても何とでもなってしまいますが、こういう知識があることで少しでも綺麗なソースを書くのが腕前の差となって表れてくるものです。

出展

公式サイトはこちら。


バックナンバー

0 件のコメント:

コメントを投稿

お気軽にコメント下さい。