※この記事は8年以上前の記事です。
現在は状況が異なる可能性がありますのでご注意ください。
おはこんばちは。
このサイトのブログも、気づけば4年くらいやってるのに気づき、
古い情報の記事も増えてきたので、
よくある、この記事は古いですよ〜表記をしようと思った。
というか、このサイト自体MTで作ってるのに、そういえばMTの記事まったく書いてなかったなっても思い、今回の題材。
そう、今回は、デベロッパーが必ずぶつかる壁、"日付比較"です。
MTだけでやろうと思ったけど、難しかったので、
PHPとの合わせ技にしました。
下記感じでやっていく。
<MTIgnore>エントリーの日付を取得、MT変数に格納する</MTIgnore> <MTEntryDate format="%Y-%m-%d" setvar="entryDate"> <?php $articleModiTime = strtotime('<MTGetVar name="entryDate">'); // PHPの変数に、MT変数の日付をタイムスタンプに変換して格納。 $timeNow = time(); // 現在の日付タイムスタンプを格納。 $yearTime = 60 * 60 * 24 * 365; // タイムスタンプの年の秒数を定義 $yearDif = 0; // 現在との年の差を格納するための変数 // 現在と記事の日付が、一年以上の開きがあったら表示 if($timeNow - $articleModiTime > $yearTime): $yearDif = floor(($timeNow - $articleModiTime) / $yearTime); // 時間差を年で割って、小数点以下切り捨て ?> <p> ※この記事は<?php echo $yearDif; ?>年以上前の記事です。<br> 現在は状況が異なる可能性がありますのでご注意ください。 </p> <?php endif; ?>
単純に、タイムスタンプに格納して、
比較して〜一年以上の開きがあったら、表示、みたいにしている。
MTだけで日付比較しようと思ったんだけど、今より古いかどうかしか
できないのと、タイムスタンプを出す方法がすぐ見つからなかったので、
どれだけの日付差があるか、はめちゃくちゃいろいろ調べないとor長いプログラム書かないと
できないと思ったので、PHP使ってしまえと思って、今回のスクリプトでした。
いやー、PHPあったらなまらいろいろできるわ。
多分Perl書ける人なら、わざわざPHP使わないでも、できるかと思います。
僕はMT使ってる割にPerlは全然使えませんw
ついでといってはなんだけど、
HTMLをPHPとして実行する方法というか、.htaccessの書き方に関しては下記エントリを参照のこと。
このサイトも、HTMLをPHPとして実行してます。
【サーバー別】HTML上でPHPを実行するための.htaccessの記述
http://m630.net/archives/816
いろいろとマルチに言語使えるといろいろやれるね。
つまづいたら、一つの言語にこだわらずに、
複合してみてる道が開けやすいかもしれない。
ではまた。
コメントする