2009-03-21 7 views
0

DATETIMEを列の型として使用し、NOW()を挿入して使用しています。それが印刷されると、それは3時間遅れる。私は何をしてEST時間の3時間前に動作するのですか?データベースの日時の値は、3時間遅れです

私のページのDATETIMEをフォーマットするのにphpの日付を使用しています。

答えて

3

NOW()を使用してデータベースに格納された日付が正しくない場合、が必要です。一度印刷すると間違っている場合は、modify your php script to use the correct timezoneが必要です。

編集:

)は(日付を使用して日付をフォーマットする方法についてはW3schools' convenient php date overviewを参照してください。

編集2:

はどちらかあなたはGoDaddyのは(疑わしい)設定を変更してもらう、またはあなたがテーブルに挿入するときに、3時間を追加します。テーブルに日付を設定するときは、日付を変更するにはMySQL date add functionを参照してください。 date_add(now()、interval 3時間)のようなものが動作するはずです。

正確な問題はhereと記載されています。

+0

DATETIMEを使用している場合は、現在の日付をどのように挿入すればよいですか? おかげで、 ライアンは – Coughlin

+0

あなたは、日付()、日付をフォーマットするための標準的なPHPの機能を使用する必要があります、と私は投稿のリンクを使用してPHPのタイムゾーンの設定を修正する必要があります。 – Rahul

+0

私はdate()の使い方を知っています。私のデータベースには3時間遅れているだけです。私は何をすることができますか?私は追加しました: date_default_timezone_set( 'America/New_York'); – Coughlin

0

gmdate()gmmktime()をご覧ください。 GMTを使用すると、特に複数のマシン上でコードが実行されている場合や、MySQLサーバー設定を変更することがオプションでない場合や、異なるタイムゾーン、日の節約などを処理した場合に、タイムスタンプの計算がずっと簡単になります。

0

私はUTCタイムゾーンで日付を挿入することをお勧めします。これは私が私のデータを照会するとき、私はあなたがDateTimeZoneを置き換えることができ、次のPHPスクリプト

<? while($row = mysql_fetch_array($registration)){ 

    $dt_obj = new DateTime($row['message_sent_timestamp']." UTC"); 
    $dt_obj->setTimezone(new DateTimeZone('Europe/Istanbul')); 
    echo $formatted_date_long=date_format($dt_obj, 'Y-m-d H:i:s'); } ?> 

を使用

"INSERT INTO abc_table (registrationtime) VALUES (UTC_TIMESTAMP())" 

(...夏時間問題などを保存する)、将来的にあなたの頭痛の多くを保存します値がphp timezonesの場合