日付を順に出力するプラグイン

ある期間の日付を順に出力するプラグインを作りました。
例えば、「今日から7日先までの日付を順に出力」といったことが可能です。

1.インストール

プラグインは以下からダウンロードします。

DateLoop_1_00.zip

ダウンロードしたファイルを解凍すると、「plugins」のフォルダができます。
このフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。

2.使い方

このプラグインをインストールすると、「MTDateLoop」というテンプレートタグ(ブロックタグ)が追加されます。
以下のモディファイアで、出力する期間を指定します。

2-1.fromモディファイア

期間の初めの日付を指定します。
「yyyymmdd」形式の数値で指定するか、以下のいずれかのキーワードで指定します。

キーワード意味
today今日の日付
last昨日の日付
next明日の日付

さらに、日付の後に「+1d」「-2m」などのオフセットを指定して、ある日付を基準とした前後の日付を表すこともできます。
「+」と「-」は、それぞれ未来/過去の日付にオフセットすることを意味ます。
また、オフセットの文字は以下の通りです。

文字意味
y
m
w
d

オフセットは複数指定することもできます。
例えば、「+1m-1d」とすると、1か月後の1日前を表します。

2-2.toモディファイア

期間の最後の日付を指定します。
fromモディファイアと同様の書き方をすることができます。

それに加えて、「from」というキーワードを使うこともできます。
fromキーワードは、fromモディファイアで指定したのと同じ日付を表します。
例えば、「from="today" to="from+1w"」とすると、今日からその1週間先までの日付を出力することになります。

2-3.stepモディファイア

日付を何日おきに出力するかを指定します。
例えば、「step="3"」とすると、fromからtoまでの日付を3日おきに出力します。
stepモディファイアにマイナスの値を指定し、またtoモディファイアの日付をfromモディファイアの日付より過去にすれば、現在から過去への順に日付を出力することもできます。
stepモディファイアを省略したときは、連続する日付を順に出力します。

3.ループ内で利用できる変数

MTLoopタグ等のループ系のタグと同様に、ループ内では以下の変数を利用することができます。
変数名に含まれる「__」は、アンダースコア2つです。

変数名内容
__first__ループの最初なら1、そうでなければ値なし
__last__ループの最後なら1、そうでなければ値なし
__odd__ループの奇数回目なら1、そうでなければ値なし
__even__ループの偶数回目なら1、そうでなければ値なし
__counter__ループの繰り返し回数

4.日付の出力

ループ内で繰り返し毎の日付を出力するには、「<$mt:Date ts="$__value__"$>」というタグを使います。

5.事例

例えば、今日から1週間先までの日付を順に出力したいとします。
この場合、以下のようにテンプレートを組みます。

<mt:DateLoop from="today" to="from+1w">
  <mt:Date ts="$__value__"$>
</mt:DateLoop>