Movable Type 備忘録

 GetDate プラグイン

  • Apr112009
  • Vote:
    http://bizcaz.com/archives/2009/04/11-044731.php
  • Categories: Plugins
  • Tags: ,
  • Social Bookmark

こんばんわ^^

日付にまつわるプラグインを作ってみました。
追加される機能は以下の通りです。

  • 今日の日付を取得
  • 任意の日付を作成
  • 任意の日付からX日後(前)の日付を作成
  • 任意の日付の存在チェック
  • 指定日を過ぎたかどうかチェック

ダウンロード

使い方

使い方はカンタンです。
各機能別に説明していきます。

  • MTToday ファンクションタグ

    今日の日付を取得するファンクションタグです。
    YYYY-MM-DD のフォーマットで表示されます。デフォルトの日付に関するモディファイアと併用することができます。

    1. <div><mt:Today></div>
  • MTMakeTime ファンクションタグ

    任意の日付を作成することができます。YYYY-MM-DD のフォーマットで表示されます。デフォルトの日付に関するモディファイアと併用することができます。

    以下のモディファイアを選択してください。

    • date モディファイア
      作成したい日付( YYYY-MM-DD )を指定します。
    • year モディファイア
      作成したい日付の年数を指定します。month、day モディファイアといっしょに使います。省略した場合は、現在の年が利用されます。
    • month モディファイア
      作成したい日付の月数を指定します。year、day モディファイアといっしょに使います。省略した場合は、現在の月が利用されます。
    • day
      作成したい日付の日数を指定します。year、month モディファイアといっしょに使います。省略した場合は、現在の日が利用されます。
    • pass
      任意の日付からX日後(+X)、またはX日前(-X)の日にちを指定して作成します。

    date モディファイアで指定日付作成

    1. <div><mt:MakeTime date="2000-01-01"></div>

    year, month, day モディファイアで指定日付作成

    1. <div><mt:MakeTime year="9" month="3"></div>

    pass モディファイアで 20 日後の日付作成

    1. <div><mt:MakeTime date="2000-01-01" pass="+20"></div>

    pass モディファイアで 20 日前の日付作成

    1. <div><mt:MakeTime date="2000-01-01" pass="-20"></div>
  • MTCheckDate ブロックタグ

    指定した日付が存在するか否かをチェックするブロックタグです。 以下の date モディファイアでチェックしたい日付の存在をチェックするか、year、month、day モディファイアの組み合わせで指定した日付が存在するかチェックすることができます。

    • date モディファイア
      指定した日付( YYYY-MM-DD )が存在するかどうかをチェックします。
    • year モディファイア
      チェックしたい年( YYYY )を指定します。month、day モディファイアと組み合わせて使用します。このモディファイアを省略した場合には現在の年が利用されます。
    • month モディファイア
      チェックしたい月( MM )を指定します。year、day モディファイアと組み合わせて使用します。このモディファイアを省略した場合には現在の月が利用されます。
    • day
      チェックしたい日( DD )を指定します。year、month モディファイアと組み合わせて使用します。指定しなかった場合には現在の日が利用されます。
    1. <div>
    2. <mt:setvar name="date" value="2010-02-28">
    3. <mt:CheckDate date="$date">ok<mt:Else>ng</mt:CheckDate>
    4. </div>
  • MTIsLater ブロックタグ

    指定日( YYYY-MM-DD )を過ぎたかどうかチェックするブロックタグです。 以下の date モディファイアを基準に、year、month、day モディファイアで指定した数値( 日数 )内かどうかをチェックすることができます。

    • date モディファイア
      基準となる日付( YYYY-MM-DD )を指定します。year、month、day モディファイアと併用します。
      指定しなかった場合には今日の日付を基準とします( 常に TRUE となる )。
    • year モディファイア
      チェックしたい年( YYYY )を指定します。
      date モディファイアで指定した日付を基準に、このモディファイアで指定した年数内かどうかチェックできます。
    • month モディファイア
      チェックしたい月( MM )を指定します。
      date モディファイアで指定した日付を基準に、このモディファイアで指定した月数内かどうかチェックできます。
    • day
      チェックしたい日( DD )を指定します。
      date モディファイアで指定した日付を基準に、このモディファイアで指定した日数内かどうかチェックできます。
    1. <div>
    2. <mt:IsLater date="2009-04-11" day="3">
    3. 2009/04/11 から 3 日以内なら表示
    4. </mt:IsLater>
    5. </div>

以上です。
よかったら使ってみてください。

 Trackback Pings(1)

from SOHOカアチャン通信

このサイトの人気No.1は「MT4 カスタムフィールドで日時を取得」なんですが、...

 Comments(11)

#1: Posted by ビリー・トランクス @ April 11, 2009 [REPLY]
user-pic

お久しぶりです。

遅くなりましたが、リンクを貼らせていただいたご報告であります。バイバイ
遠いうちにLinksページをちゃんとつくろうとは思いますが、今のペースでは相当遠い話になりそうです。

それと質問があるのですが、ここにくるまでに「Movabletype備忘録」とぐぐったところ、検索トップの下になんとメニューが表示されるではあーりませんか。

私のHPもそのように設定したいと思うのですが、そんなことできるのでしょうか。
毎回見に来るたびに仰天の機能で驚くばかりです。

私も人に聞いてばかりではなく時間を見ながらもっとしっかりと勉強しないとと思うばかりです。べ~

#2: Posted by Author Profile Page bzbellからビリー・トランクスへの返信 @ April 11, 2009 [REPLY]
user-pic

>>1 ビリー・トランクス さん

こんにちわ^^

> 私のHPもそのように設定したいと思うのですが、そんなことできるのでしょうか。

トップ下のメニューって、「HOME」とか「BROGROLL」ってあるところのメニューのことですよねあせあせ!?
できる、できないで言ったらできると思います。
普通に CSS でデザインしてるだけですのでやあ!
ただし、ビリー・トランクス さんとこの CSS などを把握してないし、ウチとまったく同じというわけにはいきませんけどね。

今ビリー・トランクス さんのサイト見たら、作業中なのかメニューが崩れてましたあせあせ

#3: Posted by カメリア @ April 12, 2009 [REPLY]
user-pic

あのー、使い道が分からないのですが・・・イヤイヤ

/mt/mt.cgiで変更できるんですが・・・。それ以外に何が必要なんですか?

よく分からなくて済みません。

#4: Posted by Author Profile Page bzbellからカメリアへの返信 @ April 12, 2009 [REPLY]
user-pic

>>3 カメリア さん

こんにちわ^^

元々は訪問者さんから相談された内容から作ったプラグインなんです。
なので、すべての人とって有用かというとそうでもないかもしれませんねにこっ!
一応各タグの説明をもう少し詳しく書いてみました。

#5: Posted by ビリー・トランクス @ April 13, 2009 [REPLY]
user-pic

遅くなりました。
何故かコメントできませんでした。

トップ下のメニューとは、自分のサイトのではなく、検索結果の1位に表示されたものです。

Movabletype備忘録
サイト説明・・・・・・・・・・・・・・・・・・・・・・・・・・・・
サイト説明・・・・・・・・・・・・・・・・・・・・・・・・・・・・
メニュー  メニュー
メニュー  メニュー
メニュー  メニュー

こんな感じです。
これは狙って出来るものではないのでしょうか。よろしくお願いします。

#6: Posted by Author Profile Page bzbellからビリー・トランクスへの返信 @ April 13, 2009 [REPLY]
user-pic

>>5 ビリー・トランクス さん

こんばんわ^^

すいませんが、できればメールフォームからご連絡頂けますでしょうか。
ビリー・トランクス さんがご質問されてることはまったく記事とは関係ないのであせあせ

#7: Posted by Hiro @ September 16, 2009 [REPLY]
user-pic

いつも参考にさせていただいています。
mt:Today format="%m"
として月だけを2桁で取得したいのですが、
実際には「2009-09-16 14:26:02」となっていしまいました。
どこか問題があるのでしょうか?

#8: Posted by ネムからHiroへの返信 @ January 31, 2010 [REPLY]
user-pic

便利なプラグインをありがとうございます。
早速、MTIsLater ブロックタグを使用させてもらっていますが、一点ご質問させてください。
date モディファイアに入力した日付が"2009-**-**"の場合は正常に判定されて、"2010-**-**"の場合には判定されずそのまま表示されてしまったのですが、どのような原因が考えられますでしょうか?
また、私も「>>7 Hiro さん」と同様の問題が発生してしまいした。この点についてもご教授いただけますと幸いです。
ちなみに、動作環境はMT5.01となります。

よろしくお願いいたします。

#9: Posted by Author Profile Page bzbellからネムへの返信 @ January 31, 2010 [REPLY]
user-pic

>>8 ネム さん

こんばんわ^^

以下の変更を入れたプラグインを UP( ver1.01 )しましたので、改めて DL してお使い頂けたらと思います。
  1. MTToday の format モディファイアの件ですが、すいません。わたしの不具合ですあせあせ
    また、MTMakeTime でも format は利用可能です。
  2. MTIsLater の件ですが、論理を反転してました。
    たとえば、2010-02-28 は今日( 2010-01-31 )より未来なので NG となり、2009-02-28 は過去なので OK となりますブイブイ
  3. X 日後の日付作成機能を変更しました。

以上です。

#10: Posted by ネム @ February 2, 2010 [REPLY]
user-pic

>>9 bzbell さん

素早いご回答・ご対応ありがとうございました!

早速ダウンロードさせていただきました。
まだ MTToday ファンクションタグの確認しかできていませんが、出力が「2010年12月2-日 02: 1 」となってしまいました(今日の16:00頃です)
私の方に問題があるかもしれませんので引き続き確認させていただきますが、もし何かお分かりになりましたらお知らせいただけますと助かります;;

度々すみませんが、よろしくお願いします。

#11: Posted by bzbellからネムへの返信 @ February 3, 2010 [REPLY]
user-pic

>>10 ネム さん

こんばんわ^^

すいません。わたしのミスでした。
format モディファイアに対応する際に MT の CORE に渡すパラメータにミスがありましたあせあせごめんなさい。
動作確認したバージョン( 1.02 )を UP しましたのでご確認頂けたらと思います。
今後ともどうぞよしなにぺこり

 Post a Comment

 

コメント用フィード