TopWordPress > カスタマイズ > その他 > 2007年3月
2007年3月13日

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

March 13,2007 2:10 AM
Tag:[, , , ]
Permalink

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>
Comments [0] | Trackbacks [3]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3