[PHP-users 33535] Re: php-4.3.2でDBの日付スタンプに漢字が混ざる
goungoun
gounx2 @ gmail.com
2008年 5月 13日 (火) 17:52:51 JST
こんにちは。
よくわかりませんが、
googleでキーワード
「freetds locales.conf date format」
で検索してみればどうでしょう。
On Tue, 13 May 2008 10:09:51 +0900
"tatsuya matsuyama" <tatsuya @ kk-okamoto.jp> wrote:
> 松山と申します。
> RedHat7.3J+国際化版php-4.2.3-multibyteで動作していたコンテンツを
> RedHatLinuxES+php4.3.2へ移植中です。
>
> Windows2003server+SQLserver2000へアクセスするコンテンツをテストしています。
>
> SQLserverから取得したタイムスタンプ
> $input_day[$i] = $data->input_day;
> などを
> // 受付日の整形
> unset($tmp_year);
> $tmp_year = (1*date("Y",strtotime($input_day[$i],"")))-1988; // 平成処理
> $tmp_youbi = ask_youbi(date("w",strtotime($input_day[$i],"")));
> $input_day[$i] = date("n/j/",strtotime($input_day[$i],""));
> $input_day[$i] = "H".$tmp_year."/".$input_day[$i]."($tmp_youbi)";
> のコードを通すと国際化版php-4.2.3とは違う表示になります。
>
> 原因を探ったところ、
> strtotime($input_day[$i],"")が-1を戻しており、
> print mb_convert_encoding($input_day[$i], "sjis", "euc")とすると
> "5月 13 2008 08:00午前"が入っていました。
> # 何故か「日」はない?
>
> strtotimeのマニュアルに
> 「US 英文形式の日付を含む文字列が指定されることを期待してお り」
> とあるのが原因のように思っています。
>
> 同じSQLserverに対して
> 国際化版php-4.2.3からのコンテンツは希望の動作をしているので、
> 移転先のRedHatES+php-4.3.2の設定の問題だと思います。
>
> この問題に該当する設定は何でしょうか?
>
> ■/etc/freetds.conf
> [MyServer2k]
> host = 192.168.0.18
> port = 1433
> # tds version = 8.0
> tds version = 4.2
> charset = sjis
> client charset = sjis
>
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
--
goungoun <gounx2 @ gmail.com>
http://goungoun.dip.jp/app/
PHP-users メーリングリストの案内