DATETIME フィールドに格納されている mysql の次の日付があります。
2012-04-16 16:21:54
次のように選択するよりも:
SELECT UNIX_TIMESTAMP(date) ....
しかし、php 日付関数を使用して時間を出力すると、1 時間の差が生じます。
echo date("H:i:s", $row->date)
印刷します:
17:21:54
2 番目のパラメーターがない場合、日付関数は正しい値を返します。何か案は?
mysqlマニュアルによると-
UNIX_TIMESTAMP()、UNIX_TIMESTAMP(date)
引数なしで呼び出された場合、Unix タイムスタンプ ('1970-01-01 00:00:00' UTC からの秒数) を符号なし整数として返します。が日付引数で呼び出された場合UNIX_TIMESTAMP()、引数の値を '1970-01-01 00:00:00' UTC からの秒数として返します。date は、DATE 文字列、DATETIME 文字列、TIMESTAMP、または YYMMDD または YYYYMMDD 形式の数値です。サーバーは、日付を現在のタイム ゾーンの値として解釈し、UTC の内部値に変換します。クライアントは、セクション10.6「MySQL サーバーのタイム ゾーン サポート」で説明されているように、タイム ゾーンを設定できます。
「e」を追加すると、そのタイムスタンプのタイムゾーンを取得できます。
おそらく、異なるタイムゾーンと関係があります。http://www.php.net/manual/en/function.date-timezone-set.phpを使用してみてください。
それでもうまくいかない場合は、残りの日付関数を調べてください: http://php.net/manual/en/book.datetime.php