TAMURA Toshihiko
tamur****@bitsc*****
2003年 1月 15日 (水) 21:46:48 JST
脇さん、こんばんは。 田村です。 "K.Waki" <fitz****@mail-*****> wrote: > 早速、本家の20030114で検証したところ、全ての言語で1970年以前でも正常に表 > 示されました。 > 登録後の変更でも問題ありません。 > 日本語版だけの問題でしょうか・・・ あら、そうですか。 最新版の catalog/includes/general.php の関数 tep_date_short() は、 次のように変更されていますね。 ------------------------------------------------------------ // Output a raw date string in the selected locale date format // $raw_date needs to be in this format: YYYY-MM-DD HH:MM:SS // NOTE: Includes a workaround for dates before 01/01/1970 that fail on windows servers function tep_date_short($raw_date) { if ( ($raw_date == '0000-00-00 00:00:00') || ($raw_date == '') ) return false; $year = substr($raw_date, 0, 4); $month = (int)substr($raw_date, 5, 2); $day = (int)substr($raw_date, 8, 2); $hour = (int)substr($raw_date, 11, 2); $minute = (int)substr($raw_date, 14, 2); $second = (int)substr($raw_date, 17, 2); if (@date('Y', mktime($hour, $minute, $second, $month, $day, $year)) == $year) { return date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, $year)); } else { return ereg_replace('2037' . '$', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037))); } } ------------------------------------------------------------ 日本語版の同じ関数をこれに置き換えたら、 正常に日付が表示されるでしょうか。 できれば試してもらえますか? この変更は、Windowsサーバ用だとコメントが付いているんですが、 それ以外のサーバでもこの現象が起こるんでしょうか。 脇さんが利用されているサーバのOSとバージョンは何ですか? でも上の変更では、日本語の日付の並びではうまくいかないかもしれません。 その場合は関数の最後のところを次のようにしてみてください。 ------------------------------------------------------------ } else { return ereg_replace('2037', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037))); } } ------------------------------------------------------------ -- 田村敏彦 / 株式会社ビットスコープ E-mail:tamur****@bitsc***** http://www.bitscope.co.jp/