PHPの勉強がてら「年月日を2つ与えると、その間の日数を数えるスクリプト」を作ってみた。
スクリプトというか関数ですかね?
<?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 sa_day("<em>カウント開始日" , "<em>終了日</em>") ?>
開始日・終了日ともフォーマットは「YYYY-MM-DD」で必ず「”(ダブルクォーテーション)」で囲ってください。
この位置にカウントされた数字(日数)が入ります。
もっとスマートなやり方があるような気がしないでもないが・・・まぁ、動いてるからいいや(笑)
MovableTypeでの具体的な使い方
アーカイブがPHP化されていることが前提です(PHPスクリプトなんだから当然っちゃ当然ですな)環境設定>テンプレート>インデックス・テンプレート で 新規テンプレートを作成。
テンプレート名は適当に、ファイル名も適当に(lib.phpとでもしてください)
↑のPHPスクリプトをテンプレートの内容にコピペ、保存して再構築しておきます。
(「インデックス・テンプレートを再構築するときに~」のチェックは外します)
各アーカイブ・テンプレートの先頭に
< ?php include("<$MTBlogSitePath$>/lib.php"); ?>
と入れる。
あとはアーカイブ・テンプレートの適当なところで
書き始めて<?php sa_day("2005-9-1","<$MTEntryDate format="%Y-%m-%d"$>"); ?>日目
とか書いて再構築すればOK。
副作用というか副産物というか・・・このlib.phpにいろんな関数やClassを放り込んでおけば、アーカイブ・テンプレートに限らずエントリ中でも呼び出して使うことが出来るんですね。
エントリーを書きながら<?php hogehoge ?>とか出来る。(MovableTypeのコンテナタグは使えないけど)
「それがど~した?」と言われると困るけど(;´Д`)