長年の疑問

長年疑問だった、午前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

ちょっと不完全だが、以下のようなものはどうか。このサイトの表示にもコレを使ってみようと思う。

function mydate($format, $now=&#8221;&#8221;)<br /> {<br /> $diffh=4;<br /> if ($now==&#8221;&#8221;){<br /> return mydate($format, time());<br /> }<br /> $n=$now-3600*$diffh;<br /> $trans=array(<br /> &#8220;a&#8221; => date(&#8220;a&#8221;, $n), &#8220;A&#8221; => date(&#8220;A&#8221;, $n), &#8220;d&#8221; => date(&#8220;d&#8221;, $n),<br /> &#8220;D&#8221; => date(&#8220;D&#8221;, $n), &#8220;F&#8221; => date(&#8220;F&#8221;, $n), &#8220;h&#8221; => date(&#8220;h&#8221;, $n),<br /> &#8220;H&#8221; => sprintf(&#8220;%02d&#8221;, date(&#8220;H&#8221;, $n)+$diffh),<br /> &#8220;G&#8221; => date(&#8220;G&#8221;, $n)+$diffh,<br /> &#8220;g&#8221; => date(&#8220;g&#8221;, $n), &#8220;i&#8221; => date(&#8220;i&#8221;, $n), &#8220;j&#8221; => date(&#8220;j&#8221;, $n),<br /> &#8220;l&#8221; => date(&#8220;l&#8221;, $n), &#8220;L&#8221; => date(&#8220;L&#8221;, $n), &#8220;m&#8221; => date(&#8220;m&#8221;, $n),<br /> &#8220;n&#8221; => date(&#8220;n&#8221;, $n), &#8220;M&#8221; => date(&#8220;M&#8221;, $n), &#8220;r&#8221; => date(&#8220;r&#8221;, $n),<br /> &#8220;s&#8221; => date(&#8220;s&#8221;, $n), &#8220;S&#8221; => date(&#8220;S&#8221;, $n), &#8220;t&#8221; => date(&#8220;t&#8221;, $n),<br /> &#8220;T&#8221; => date(&#8220;T&#8221;, $n), &#8220;U&#8221; => date(&#8220;U&#8221;, $n), &#8220;w&#8221; => date(&#8220;w&#8221;, $n),<br /> &#8220;W&#8221; => date(&#8220;W&#8221;, $n), &#8220;Y&#8221; => date(&#8220;Y&#8221;, $n), &#8220;y&#8221; => date(&#8220;y&#8221;, $n),<br /> &#8220;z&#8221; => date(&#8220;z&#8221;, $n), &#8220;Z&#8221; => date(&#8220;Z&#8221;, $n),<br /> );<br /> return strtr($format, $trans);<br /> }<br />

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です