長年疑問だった、午前12時? 午後0時?(crl.go.jp)というものを発見した。/.-jの、えーとこのへん(slashdot.jp)より。
title="午前12時? 午後0時?">
「お昼の12時は『午前12時』、『午後12時』、それとも 『午後0時』どれが正しいのですか?」
要するに11→12になるのは断裂がないのに、AM→PMに変わるのはおかしい、ということだ。AMからPMになるからには、11→0のように飛んだほうがわかりやすい。PMのままなのに12→1になると連続しているように見えないしね。でも11→12にするとAMが午前でPMが午後という事実が覆されてしまう。
PHPで、AM4:00までは昨日の28:00だと表現するための簡単な方法はないかなぁ。date()の引数の文字列を工夫するだけでは無理だよねぇ。mydate()なんかを実装するしかないのだろう、たぶん。
(追記) 2003-09-16 13:09
ちょっと不完全だが、以下のようなものはどうか。このサイトの表示にもコレを使ってみようと思う。
{
$diffh=4;
if ($now==””){
return mydate($format, time());
}
$n=$now-3600*$diffh;
$trans=array(
“a” => date(“a”, $n), “A” => date(“A”, $n), “d” => date(“d”, $n),
“D” => date(“D”, $n), “F” => date(“F”, $n), “h” => date(“h”, $n),
“H” => sprintf(“%02d”, date(“H”, $n)+$diffh),
“G” => date(“G”, $n)+$diffh,
“g” => date(“g”, $n), “i” => date(“i”, $n), “j” => date(“j”, $n),
“l” => date(“l”, $n), “L” => date(“L”, $n), “m” => date(“m”, $n),
“n” => date(“n”, $n), “M” => date(“M”, $n), “r” => date(“r”, $n),
“s” => date(“s”, $n), “S” => date(“S”, $n), “t” => date(“t”, $n),
“T” => date(“T”, $n), “U” => date(“U”, $n), “w” => date(“w”, $n),
“W” => date(“W”, $n), “Y” => date(“Y”, $n), “y” => date(“y”, $n),
“z” => date(“z”, $n), “Z” => date(“Z”, $n),
);
return strtr($format, $trans);
}