1

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 番目のパラメーターがない場合、日付関数は正しい値を返します。何か案は?

4

2 に答える 2

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 サーバーのタイム ゾーン サポート」で説明されているように、タイム ゾーンを設定できます。

于 2012-04-16T11:38:20.787 に答える
0

「e」を追加すると、そのタイムスタンプのタイムゾーンを取得できます。

おそらく、異なるタイムゾーンと関係があります。http://www.php.net/manual/en/function.date-timezone-set.phpを使用してみてください。

それでもうまくいかない場合は、残りの日付関数を調べてください: http://php.net/manual/en/book.datetime.php

于 2012-04-16T11:28:05.603 に答える