Quantcast
Channel: でびあんのがらくた箱 » MovableType
Viewing all articles
Browse latest Browse all 10

日数を計算する

$
0
0

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のコンテナタグは使えないけど)
「それがど~した?」と言われると困るけど(;´Д`)

関連しそうなentry


Viewing all articles
Browse latest Browse all 10

Trending Articles