- ベストアンサー
date関数がgmdate関数と同じになってしまってます。
PHP初心者です。 環境:PC自作/WIN-XP/apache2/PHP5 pcの時間は東京時間なのに、date関数はグリニッジ標準時を返してきます。悪いのはapacheの設定かPHPの設定なのかわかりません。教えてください。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2に対する補足です もし、可能ならば PHP 設定ファイルの default_charset mbstring.internal_encoding mbstring.http_output いずれも、EUC-JP に指定。 mbstring.http_input をAUTOに指定 HTML文をEUC-JPで作成してみてはいかがでしょうか? 提示されたコードは当方の環境では問題なく表示されています。 【環境】 OS: FreeBSD 4.9 Apache 1.3.28 PHP 4.3.11 もしかしたらWindows 環境だからかもしれません。
その他の回答 (2)
- hegemonism
- ベストアンサー率53% (37/69)
>2005 ・12月5日 20:41.38 >のように、”年”が文字化けしてしまいました。 漢字コードは EUC 、または SJIS で統一されてますか? PHP 設定ファイルの default_charset 内容と mbstring.internal_encoding 内容 mbstring.http_output 内容 と、PHPスクリプト自体の漢字コードは合わせておいたほうがよろしいかとおもいます。
補足
回答ありがとうございます。 default_charset =SJIS mbstring.internal_encoding =SJIS mbstring.http_output =SJIS でも上手くいきませんでした。 以下のコードを実行すると・・ $time1=date("Y年n月j日 H:i.s"); print($time1.'<br>'); print("年月日".'<br>'); 以下のようになります。 2005・12月6日 22:00.13 年月日 どうやらdate関数で"年”を使うと文字化けします。 因みに PHP Version 5.1.1 (windows用)です。
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
http://php.planetmirror.com/manual/en/function.date-default-timezone-get.php http://php.planetmirror.com/manual/en/ref.datetime.php#ini.date.timezone この辺が参考になるかも知れません。 通常はサーバの設定になると思うので、date.timezoneに0とかが入ってるのかも知れません。
お礼
参考WEBを教えていただきありがとうございました。 今後の学習に大変役に立ちます。 今後も見かけましたらよろしくお願いします。
補足
ご回答ありがとうございます。 参考WEBは参考になりました。 もう一度、インストールを見直したところ、 WINDOWSのシステムディレクトリにphp5ts.dllをコピーし忘れていました。お騒がせいたしました。 結果、時間は直りましたが、 $time2=date("Y年n月j日 H:i.s"); と記述すると、 2005 ・12月5日 20:41.38 のように、”年”が文字化けしてしまいました。 またよろしくお願いします。
お礼
遅れながら、 全てEUCに統一したら解決しました。
補足
携帯からのアクセスを考え、Shift_JISに統一しています。 (1)WinXP+Apache2+PHP5.1.1 でhtmlをつくり、動作確認後、 (2)FEDORA4+Apache2+PHP5.1 に転送して表示させます。 (1)で文字化けしても、(2)では正常表示されます。 したがって、(1)の環境下でのdate関数特有の仕様なのでは(?)と思います。 根拠:WEB http://www.shigeweb.jp/php/project_p/?section=miniref&page=first さらにデータベース(MYSQL)の機能も組み込む予定ですが、どうやら文字化けの問題がさらに複雑になりそうです。 いろいろとありがとうございました。これからもサイトで見かけたらよろしくお願いします。