MovableType では、エントリの投稿時刻は 12 時間表示で行われる。何時何分に AM か PM がつく。例えば、お昼の 12:34 に投稿した場合は、12:34 PM となる。しかし、お昼ならば 12:34 AM あるいは 0:34 PM になるような気もする。
この混乱は、MovableType だけではなく、日本製の時計にも起こっている。身のまわりの目覚まし時計、携帯電話、その他時刻が表示されているもののうち、半分はお昼を 12:00 PM と表示するのである。いわゆる「ダブルスタンダード」となってしまっているのだ。ちなみに、新聞のテレビ欄は 0:00 PM となっている。話を分かりやすくするために、表にしてみる。
24時間表記 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
12時間表記 昼: 12:00PM |
AM |
PM |
||||||||||||||||||||||
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
12時間表記 昼: 0:00PM |
AM |
PM |
||||||||||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
お昼を 12:00PM と表記する場合は、11 の次に 12 が来るという自然な数の流れを AM, PM が分断してしまっている。数の進み方と AM, PM の切り替えの同期がとれていない。これに対して、お昼を 0:00 PM と表記する方法では、数は 0 から始まり 11 で終わり、次の 0 に切り替わるときに同時に AM から PM に変わっている。12:00 PM よりも自然だといえるだろう。ただし、アナログ時計の文字盤は「0」から始まっていないという欠点がある。
12:00 PM をお昼の 12 時とする表記は、以下のことから導かれているのではないだろうか。
なるほど、と思わせる。しかし、これも微妙である。なぜなら、お昼は 12:00 PM だと言い切る人でも、「夜中の 12 時は?」と聞かれて「12:00 AM」と即答できる人は少ないからである。
2010年2月1日追記: 日本では上述の通り2通りの解釈がありますが,国際的には 12:00 a.m. は夜中の12時 (24時間表示なら 0:00) となっています (12-hour clock - Wikipedia)。したがって,0:00 a.m. や 0:00 p.m. という表記は存在しません。0:00 a.m. は 12:00 a.m. (12時間表記) または 0:00 (24時間表記) で表されます。Linux の時刻表示,Perl, PHP などのスクリプト言語でも統一されています。
以下は Movable Type に関する話。
上述の面倒な話を避けるには、「24 時間表記にすればいい」ということになる。 デフォルトのテンプレートでは、<$MTEntryDate format="%X"$> となっており、これは<$MTEntryDate format="%I:%M %p"$> の意味なので、<$MTEntryDate format="%H:%M"$> に変更する。%H は24時間表示の「時」を表す。他の時刻表示タグも次のように統一する。
テンプレート | 用途 | デフォルトのタグ | 変更後のタグ |
Main Index | エントリ用 | <$MTEntryDate format="%X"$> | <$MTEntryDate format="%H:%M"$> |
Category Archive | エントリ用 | <$MTEntryDate format="%X"$> | <$MTEntryDate format="%H:%M"$> |
Date-Based Archive | エントリ用 | <$MTEntryDate format="%X"$> | <$MTEntryDate format="%H:%M"$> |
コメント用 | (なし) | <$MTCommentDate format="%x %H:%M"$> | |
Individual Entry Archive | エントリ用 | <$MTEntryDate$> | <$MTEntryDate format="%H:%M"$> |
コメント用 | <$MTCommentDate$> | <$MTCommentDate format="%x %H:%M"$> | |
トラックバック用 | (なし) | <$MTPingDate format="%x %H:%M"$> | |
Comment Listing | コメント用 | <$MTCommentDate$> | <$MTCommentDate format="%x %H:%M"$> |
TrackBack Listing | トラックバック用 | <$MTPingDate$> | <$MTPingDate format="%x %H:%M"$> |
日付は %B %d, %Y と書くより、%x と書いた方が汎用的。%x は言語による表記の違いを吸収してくれる。編集メニューで、日付として英語表記を選択すれば、%x は「%B %d, %Y」に変換され、日本語表記を選択すれば「%Y年%m月%d日」に変換される。ちなみに、日付の表記を定義しているのは lib/mt/util.pm モジュールである。
日付と時刻のフォーマットに関しては、MT Wiki . MT . DateTagFormatsが詳しい。
Posted by n at 2004-04-22 18:08 | Edit | Comments (4) | Trackback(5)
Master Archive Index
Total Entry Count: 1957
すみません、手違いで複数TB送ってしまいした
Posted by: tosea at August 01, 2004 00:13削除してください
トラックバックありがとうございました。重複分は削除させていただきました。
Posted by: n at August 01, 2004 06:29こちらのミスで関係の無い記事でトラックバックを送ってしまいました。
Posted by: toshi at November 02, 2004 23:56すみませんでした。
問題ありません。削除しますか?
Posted by: n at November 03, 2004 00:15