日付に関するテンプレートタグで「月」が1桁の場合はスペースを追加する

かなり基本的な内容ですが、ソースをコピペできるようにという意味でエントリーしておきます。

Movable Type では、 MTEntryDateなど日付に関するテンプレートダグがいくつか用意されています。

それらのテンプレートタグには、format モディファイアなどにパラメーターを指定することで、様々な表示形式にすることができます。しかし、これらのパラメーターの中には、「日」に関しては、1桁の場合(1日〜9日)は0が付加されるもとの空白が付加されるパラメーターがありますが、「月」に関しては、1桁の場合(1月〜9月)は0が付加されるものしかありません。

前置きが長くなりましたが、今回は、MTIf タグを使って条件分岐する方法で、1桁の「月」の場合に空白を付加します。

1桁の「月」の場合に空白を付加する

完成したテンプレートは以下の通りです。見やすいように改行しています。

<$mt:EntryDate format="%Y" cat="年"$>
<$mt:EntryDate format="%b" setvar="entry_date"$>
<mt:If name="entry_date" lt="10"> </mt:If>
<$mt:GetVar name="entry_date" cat="月"$>
<$mt:EntryDate format="%e" cat="日"$>

MTIfタグの ltモディファイアで、「10より小さい場合」という条件を与えています。

catモディファイアは、出力する値の末尾に指定した文字列を追加するグローバルモディファイアです。catモディファイアを利用せずに直接「年」「月」「日」を書いても良いと思いますが、この方がスッキリする気がします。

設定例

例えば、企業サイトのトップページなどで良くある新着情報リストは以下のようになります。

<mt:Entries lastn="5">
<mt:EntriesHeader><dl></mt:EntriesHeader>
	<dt><$mt:EntryDate format="%Y" cat="年"$><$mt:EntryDate format="%b" setvar="entry_date"$><mt:If name="entry_date" lt="10"> </mt:If><$mt:GetVar name="entry_date" cat="月"$><$mt:EntryDate format="%e" cat="日"$></dt>
	<dd><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle encode_html="1"$></a></dd>
<mt:EntriesFooter></dl></mt:EntriesFooter>
</mt:Entries>

実際に再構築してみると以下の通りです。横並びはCSSで調整しています。

<$mt:EntryDate format="%Y" cat="年"$><$mt:EntryDate format="%b" setvar="entry_date"$><$mt:GetVar name="entry_date" cat="月"$><$mt:EntryDate format="%e" cat="日"$> <$mt:EntryTitle encode_html="1"$>

Webサイトのフォントに等幅を指定しない限り、きちっとは揃いませんが、1桁の「月」も見やすくなると思います。

これに「Movable Type のブログ記事の公開日時を年号(元号)で表示する」方法を使えば、以下のようになります。

<$mt:EntryDate format="%Y%m%d"$><$mt:EntryDate format="%Y"$>昭和<$mt:GetVar name="entry_date_nengou"$>年<$mt:EntryDate format="%Y"$>平成元年<$mt:EntryDate format="%Y"$>平成<$mt:GetVar name="entry_date_nengou"$>年<$mt:GetVar name="entry_date_nengou"$><$mt:EntryDate format="%b" setvar="entry_date"$><$mt:GetVar name="entry_date" cat="月"$><$mt:EntryDate format="%e" cat="日"$> <$mt:EntryTitle encode_html="1"$>

以上です。