2012-04-05 10 views
1

私はmysqlエントリにタイムスタンプを使用しようとしていますが、それは20時間後に表示されます。mysql/php timezone issues

私はmysqlコマンドラインに次のように入力すると、正しい時間が表示されている(それが現在20:15東です)

SELECT NOW(); 

私は以下を使用して、私のデータベースに何かを送信すると、すべてがを除いて正しいです時刻は午前12時15分と表示されます。それが重要な場合

date('m/d/Y,h:i:a'); 

私のテーブルの列はVARCHAR(20)です。

私はまた、それが東部のタイムゾーンに設定されていることを確認しようとしましたが、間違ったタイムゾーンのエラーが表示されました。

SET time_zone = 'America/New_York'; 

私は私のdatabseエントリーで20時間でオフだが、私はmysqlのコマンドラインを使用する場合、それが正しく表示されます時間をルックアップするために、なぜ誰もが手掛かりを持っていますか?

答えて

2

これはPHPのタイムゾーンの問題だとしています。 PHPのiniファイルで設定したタイムゾーンを確認する必要があります。あなたは、MySQLでタイムゾーンを変更しようとしていたよう

ini_set('date.timezone', 'America/New_York'); 

は思え:

[Date] 
; Defines the default timezone used by the date functions 
date.timezone = America/New_York 

また、あなたのスクリプト内のタイムゾーンを設定することができます。あなたはまた、あなたのタイムゾーン設定MySQLを確認するだけで、確認する必要があります。

+0

私のスクリプトのどこにこれを設定しますか?変数$ timestamp = date( 'm/d/Y、h:i:a')を使用します。その変数を入力します。私はその変数の前に設定しますか? – user1104854

+0

ええ、スクリプトの冒頭でini_setを実行してください。 – Gohn67

+0

テストするには、日付が正しいタイムゾーンにあるかどうかを確認してください。 – Gohn67