PHPの勉強がてら「年月日を2つ与えると、その間の日数を数えるスクリプト」を作ってみた。
スクリプトというか関数ですかね?
[php]<?php
function sa_day($s,$e)
{
$start_pieces = explode(“-“, $s);
$end_pieces = explode(“-“, $e);
$sa_sec = mktime(0,0,0,$end_pieces[1],$end_pieces[2],$end_pieces[0]) – mktime(0,0,0,$start_pieces[1],$start_pieces[2],$start_pieces[0]);
$sa = $sa_sec / 60 / 60 / 24;
echo $sa;
return;
}
?>[/php]

呼び出し方は
[php]< ?php sa_day("カウント開始日” , “終了日“) ?>[/php]
開始日・終了日ともフォーマットは「YYYY-MM-DD」で必ず「”(ダブルクォーテーション)」で囲ってください。
この位置にカウントされた数字(日数)が入ります。
もっとスマートなやり方があるような気がしないでもないが・・・まぁ、動いてるからいいや(笑)


MovableTypeでの具体的な使い方

アーカイブがPHP化されていることが前提です(PHPスクリプトなんだから当然っちゃ当然ですな)
環境設定>テンプレート>インデックス・テンプレート で 新規テンプレートを作成。
テンプレート名は適当に、ファイル名も適当に(lib.phpとでもしてください)
↑のPHPスクリプトをテンプレートの内容にコピペ、保存して再構築しておきます。
(「インデックス・テンプレートを再構築するときに~」のチェックは外します)
各アーカイブ・テンプレートの先頭に
[php]< ?php include("<$MTBlogSitePath$>/lib.php”); ?>[/php]
と入れる。
あとはアーカイブ・テンプレートの適当なところで
[php]書き始めて<?php sa_day(“2005-9-1″,”<$MTEntryDate format=”%Y-%m-%d”$>”); ?>日目[/php]
とか書いて再構築すればOK。
副作用というか副産物というか・・・このlib.phpにいろんな関数やClassを放り込んでおけば、アーカイブ・テンプレートに限らずエントリ中でも呼び出して使うことが出来るんですね。
エントリーを書きながら<?php hogehoge ?>とか出来る。(MovableTypeのコンテナタグは使えないけど)
「それがど~した?」と言われると困るけど(;´Д`)



関連しそうなentry