[PHP-users 33070] Re: PHP Fatal error: Call to undefined function date_parse()

komura komura @ ma9.seikyou.ne.jp
2007年 12月 23日 (日) 23:41:03 JST


komura です。

On Fri, 21 Dec 2007 11:13:27 +0900
小野寺淳一 <onodera @ growrise.co.jp> wrote:

> FedoraCore6 + PHP 5.1.6 (cli)
> 
> でdate_parseが使えなく、困ってます
> 
> PHPのマニュアルでは
> (PHP 5 >= 5.1.3)
> 
> となってます。

マニュアルが間違っています。
PHP 5.1.x では date_parse() は使用できません。
PHP 5.2.0 以降では使用可能です。

正確には、PHP 5.1.3 で date_parase() は実験的な関数という扱いで
ソースコードには処理が追加されています。
確か、PHP マニュアルは関数が使用可能になったバージョンを自動的に
取得しているはずでしたので、それがうまくいっていないだけだと思います。

どういった処理を行いたいのか分かりませんが、date_parase() でなくても、
strtotime() の結果を getdate() に渡せば、似たような結果を得られます。
受け取った文字列が日付として処理できるかどうかは strtotime() の結果で
分かります。

  http://php.net/getdate
  http://php.net/strtotime


どうしても現在お使いの PHP 5.1.6 で date_parse() を使いたい場合は、
ソースコードのコンパイルが必要になります。EXPERIMENTAL_DATE_SUPPORT
というフラグを渡してコンパイルすれば date_parse() が使用可能になります。

また、date_parse() 以外の以下の日付関数も PHP マニュアルでは PHP 5.1.0
追加されたことになっていますが、PHP 5.1.x では、実験的な関数という扱い
になっています。実際に使用できるのは PHP 5.2.0 以降です。

  date_create()
  date_format()
  date_modify()
  date_timezone_get()
  date_timezone_set()
  date_offset_get()
  date_time_set()
  date_date_set()
  date_isodate_set()
  timezone_open()
  timezone_name_get()
  timezone_name_from_abbr()
  timezone_offset_get()
  timezone_transistions_get()
  timezone_identifiers_list()
  timezone_abbreviations_list()

-- 
komura <komura @ ma9.seikyou.ne.jp>


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