[PHP-users 22321]Re: strtotimeについて

Youichi Iwakiri yiwakiri @ st.rim.or.jp
2004年 6月 23日 (水) 12:46:15 JST


いわきりです

Tomokazu Kuribayashi wrote in <20040622104720.60CA.K-TOMO99 @ zap.att.ne.jp> :
>> Because strtotime() behaves according to GNU date syntax, 
>> have a look at the GNU manual page titled Date Input Formats. 
>> Described there is valid syntax for the time parameter. 
>strtotimeのヘルプにはこう書かれているので、ミリ秒にも対応し
>てそうな気がするのですが、エラーになってしまうのはPHPの問題
>なのでしょうか?

GNUのマニュアルページを見ると、Date Input Formatsに関して
記述されたページが複数あります。
GNU tarで述べられているものは、ミリ秒を容認しています。
coreutilだと、ミリ秒の記述がありません。
(その他の多くのアプリケーションでも記述がありません。)
GNUのマニュアルも曖昧ですし、PHPのドキュメントが指している
Date Input Formatsが明確で無いというあたりが問題かなと。

>対応策として
>1.selectで取り出す時にto_char関数を使いミリ秒を削除
>2.insertでnow()は使わずにPHPのdate関数で日付を作成
>の2点を考えています。
>皆さんはこういった状況の場合、どう対処されていますか?
>ご意見をお聞かせ下さい。

PHP本家でも、この件に関しては認知していて、PHP5では
修正済みです。PHP4に関しては、CVSからバックポートする
と以前にあったんですが、忘れ去られているような感じです。

下記のバグレポートを見て、
php-src/ext/standard/parsedate.y を修正して、
対処すると言うのが一番良いかもしれません。

http://bugs.php.net/bug.php?id=17988

「PHP-4.3.xでも対応してくれよ」とコメントするのも忘れずに 
されると、多くの人が幸せになれます。

-- 
Youichi Iwakiri



PHP-users メーリングリストの案内