3

PHP と MySQL の時刻を同期しようとしています。現在、時刻は異なります (以下の出力)。

'SELECT CURRENT_TIMESTAMP' returns '2013-03-16 13:14:28'
'date('Y-m-d g:i:s')'      returns '2013-03-16 10:14:28'

を使用してMySQL時間を変更することで、他のユーザーから読んで成功しましたSET time_zone='-7:00';。問題は、ユーザーの場所に基づいてさまざまなクエリの時間が変化することであり、time_zoneクエリごとに変更したくありません。

一度だけ設定しtime_zoneて、サーバーと同じ時刻にしてから、PHP でユーザーのタイムゾーンに基づいて時刻を変更する必要がありますか? または、これについてもっと良い方法はありますか?

前もって感謝します!

4

2 に答える 2

2

time_zone を一度設定して、サーバーと同じ時刻にしてから、PHP でユーザーのタイムゾーンに基づいて時刻を変更する必要がありますか? または、これについてもっと良い方法はありますか?

はい。また、夏時間のため、GMT ゾーンを介してタイムゾーンを設定しないでください。date_default_timezone_set('UTC'); を設定することで、この変換を行う関数を自分で作成できます。次に、ユーザーのタイムゾーンに。

$time = strtotime('2013-03-16 13:14:28'.' UTC');
echo date('Y-m-d g:i:s',$time); //2013-03-16 9:14:28

もう 1 つの方法は、mysql 時間を「Unix Time」に保存してから、PHP で 1 回だけ変換することです。

于 2013-03-16T18:45:22.540 に答える
1

アプリケーション/データベースで単一のタイムゾーンを使用することは間違いありません。ユーザーに表示するときに必要な場合にのみ、データのタイムゾーンを変更します(dbまたはphpのデフォルトのtzではありません)-そして、表示する直前にのみ変更します。それ以外の場合は、単一のタイムゾーンを使用してください。私はGMTの方が好きです

mysqlサーバーのタイムゾーンを設定するには:my.confに次のようなものがあります: default-time-zone='GMT' そしてmysqlを再起動します参照:http ://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

PHP の場合、各ページの上部で次の行を実行する必要があります。

date_default_timezone_set("GMT");
于 2013-03-16T17:45:06.273 に答える