1

私はphpとmysqlを使用しています。ローカルホストのmysqlデータベースに時間値を挿入すると、正しい時間が適用されます。now()とりあえずこの機能を使っています。

Webホスティングアカウントのmy_sqlデータベースに時間値を挿入すると、間違ったタイムゾーンが表示されます。

別のタイムゾーンのユーザーが何かを投稿し、それを自分のタイムゾーンで表示している場合、ユーザーに表示される時間がユーザーが表示している場所に相対するように設定するにはどうすればよいですか。

$sql1="INSERT INTO notifications (stamp) 
            VALUES (now());
4

3 に答える 3

6

サーバーは別のタイムゾーンにあります。

PHPとMySQLでタイムゾーンを設定できます。

date_default_timezone_set('America/Los_Angeles');

そしてMySQLでは:

SET time_zone = 'America/Los_Angeles';

または、時間をtimestamp列として保存できます。列は、基になるデータでは常にUTCです。

于 2012-05-11T15:30:23.090 に答える
2

のドキュメントNOW()から:

値は現在のタイムゾーンで表されます。

したがって、ローカルマシンがホストのマシンとは異なるタイムゾーンにある場合、異なる結果が表示されます。

UTC_TIMESTAMP()代わりに使用を検討することをお勧めします。(これが適切なコンテキストで使用された場合に値を返すかどうかは私にはわかりませんDATETIMEが、おそらくそれが必要です。)

于 2012-05-11T15:31:42.090 に答える
0

Webサーバーのphp.iniにはおそらく異なるタイムゾーンが設定されています。

あなたは経由してあなたのphpファイルでそれを変更することができますdate_default_timezone_set()

于 2012-05-11T15:31:26.553 に答える