WordPress における日付/時間の表示とフォーマット変更方法

WordPress における日付/時間の表示とフォーマット変更方法

Posted at March 13,2007 2:10 AM
Tag:[Customize, the_date, the_time, WordPress]

WordPress への記事投稿日の日付および時間の表示方法と、日付/時刻フォーマットを変更するカスタマイズをご紹介します。

このエントリーのきっかけは、当サイトで配布しているテーマに表示される記事投稿時間を24時間表記に変更する方法についてのご質問だったのですが、それだけでは何なので一通り調べてみました。

1.概要

テンプレートの記事投稿時間を表示したい位置に

<p><?php the_time() ?></p>

を設定すると、下のように時刻情報に変換されてページに表示されます。

<p>21:07:51<p>

2.テンプレートタグ

日付表示用テンプレートタグには次の2つがあります。

2.1 the_time

記事の投稿時間を表示します。書式は次の通りです。

<?php the_time('format') ?>

format には2項以降に示す「表示フォーマット」を設定します。

カッコ内を省略すると、4項の管理画面に設定した表示フォーマットが適用されます。

2.2 the_date

記事の投稿時間を表示します。書式は次の通りです。

<?php the_date('format', 'before', 'after', echo) ?>

the_time との違いは、

  • 同一日に複数記事がある場合は最初の記事にだけ表示
  • 日付/時間の前後に表示するテキストの指定が可能
  • PHPの変数として取得可能(その場合、表示されません)

が挙げられます。特に一つ目の振る舞いが大きな違いですので、使用する場所に応じて使い分けると良いでしょう。

format は3項以降に示す「表示フォーマット」を設定します。before は日付/時間の前に表示するテキスト、after は日付/時間の後に表示するテキスト、echo は、日付/時間を表示する場合は true、変数として取得する場合は false を設定します。

変数として取得する場合のサンプルを以下に示します。

<?php $my_date = the_date('', '', '', false); ?>

カッコ内を全て省略すると、4項の管理画面に設定した表示フォーマットが適用されます。
管理画面に設定した表示フォーマットを適用し、なおかつ日付/時間の前後にテキスト(ここでは p 要素をサンプルとして設定)を表示したい場合は、次のようにします。

<?php the_date('', '<p>', '</p>') ?>

このタグのパラメータに前後のテキストが設定できる理由は、仮にタグの外側に HTML タグを設定した場合、(同一日付のエントリーが複数あると)このタグが表示されないことがあり、外側に設定した HTML タグが残ってしまいます。これを避けるためにパラメータとしてタグを設定できるようにしています。

3.表示フォーマット

表示フォーマットは、時間を表示するフォーマット文字(後述)と、任意の文字列で構成されます。
1項のように the_time を利用して

<p>21:07:51</p>

という表示にしたい場合は、時分秒のフォーマット文字「h」「i」「s」と、それぞれを区切る文字「:」で、

<p><?php the_time('h:i:s') ?></p>

というフォーマットをパラメータに設定します。

4.フォーマット設定方法

フォーマットは次のいずれかの方法で設定することができます。

  • 管理画面の [オプション] - [一般設定] - [日付のフォーマット/時間のフォーマット]
  • テンプレートタグに直接記述

「テンプレートタグに直接記述」というのは、2.1項の例では

<?php the_time('h:i:s') ?>

という風に、カッコ内にパラメータとして表示フォーマットを設定することを指します。

管理画面での設定箇所は下のスクリーンショットの通りです。「日付のフォーマット:」フィールドの内容が the_date、「時刻のフォーマット:」フィールドの内容が the_time に対応しています。

日付/時刻のフォーマット設定

フィールドに設定されたフォーマットを利用するには、2項に記した通り、テンプレートタグの the_datethe_time のパラメータが空きであることが条件となります。

当サイトで配布しているテーマでは日付フォーマットを直接テンプレートに埋め込んでますので、管理画面から設定できるようにするには、テンプレートの下記の部分をそれぞれ変更してください。

日付表示(変更前) *1

<?php the_date('Y.m.d', '<p class="date">', '</p>') ?>

日付表示(変更後)

<?php the_date('', '<p class="date">', '</p>') ?>

時間表示(変更前)

Posted at <?php the_time('h:i') ?>

時間表示(変更後)

Posted at <?php the_time() ?>

5.フォーマット文字一覧

PHPdate より、よく使われそうなフォーマット文字を抜粋し、下記にまとめてみました。

なお、日本語版 WordPress の場合、表中の月表示および曜日表示は日本語になります(英語表記にする場合の変更方法は「WordPress の月・曜日を英語表記にする」を参照)。

出力される日付文字列の書式
単位フォーマット文字意味表示例
Y4桁の数字1999, 2003
y2桁の数字99, 03
m2桁の数字01 - 12
n1桁または2桁の数字1 - 12
FフルスペルJanuary - December
M3文字の省略形式Jan - Dec
d2桁の数字01 - 31
j1桁または2桁の数字1 - 31
曜日 D3文字の省略形式Mon - Sun
lフルスペルSunday - Saturday
午前/午後 a小文字am / pm
A大文字AM / PM
h2桁の数字・12時間表示01 - 12
g1桁または2桁の数字
12時間表示
1 - 12
H2桁の数字・24時間表示00 - 23
G1桁または2桁の数字
24時間表示
0 - 23
i先頭にゼロをつける00 - 59
s先頭にゼロをつける00 - 59

以下は年月日・時分秒の設定早見表です。

年月日の設定早見表
設定例表示
4桁Y2桁m2桁dY/m/d2007/01/01
0なしjY/m/j2007/01/1
0なしn2桁dY/n/d2007/1/01
0なしjY/n/j2007/1/1
2桁y2桁m2桁dy/m/d07/01/01
0なしjy/m/j07/01/1
0なしn2桁dy/n/d07/1/01
0なしjy/n/j07/1/1
時分秒の設定早見表
設定例表示
12時間表記・2桁h2桁i2桁sh:i:s01:02:03
12時間表記・0なしgg:i:s1:02:03
24時間表記・2桁HH:i:s13:02:03(01:02:03)
24時間表記・0なしGG:i:s13:02:03(1:02:03)

6.参考・関連リンク

2007.03.13 追記
テンプレート改修に伴い、4項の記述を修正しました。


*1:2007.03.13 以前にテンプレートをダウンロードされた場合、メインページ/アーカイブページについては下記の変更を行ってください。

日付表示(変更前)

<p class="date"><?php the_time('Y.m.d') ?></p>

日付表示(変更後)

<p class="date"><?php the_date() ?></p>
関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

テーマ変更してみました from oshiire*BLOG
いつもどおりの現実逃避です。気持ちいいです。 ところが、どうしても納得のいかない部分があるのです。これだけに限らず、WordPress のテーマでは、日付... [続きを読む]

Tracked on October 13, 2008 4:09 PM

続・vectorizeの修正 from Idle Away
既に昨日のうちに修正済みでしたが、備忘録的に書いておこうと思います。 ■「Recent Posts」の日付フォーマット もともとのフォーマットが、2... [続きを読む]

Tracked on February 18, 2009 11:57 PM

WordPressに投稿の日付だけじゃなく時間も表示したい! from 「ふぉしむ」のブログ
「mg12」さんの作ったテーマ、はじめから日本語対応してくれてるのはうれしいんだけど、 やっぱり投稿時間は表示されないですね。 年月日だけ。。 外国の人は... [続きを読む]

Tracked on February 27, 2010 10:15 PM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)