0

ローカルの MySQL サーバーで奇妙な問題が発生しています。デフォルトで CURRENT_TIMESTAMP に設定された created_at タイムスタンプ列を持つテーブルがあります。私が読んだことはすべて、これが時間をUTCで保存し、表示のために現地時間に変換する必要があることを示しています。ただし、正しく機能していません。ディスプレイに問題があるのか​​ どうかはわかりませんが、タイムスタンプを読み取ると、ローカルタイムゾーンに合わせて調整するのではなく、GMT 時間が表示されます。これはそれほど大きな問題ではありませんが、NOW()ローカル時間を提供しているため、それらを適切に比較することはできません。私はおそらく何かばかげたことを見逃しているように感じますが、ここで何が起こっているのでしょうか?

問題があれば、64 ビットの Windows 8 で MySQL 5.5.24 を実行しています (残念ながら)。

編集:

さらに調べてみると、手動で行を追加するとタイムスタンプが正常に機能していることがわかりました。それは私のPHPから来る行だけです。何らかの理由で、PHP 接続がデフォルトのタイムゾーンをオーバーライドしているに違いないと思います。

4

2 に答える 2

0

タイムゾーンデータをロードしましたか?

http://www.geeksengine.com/article/populate-time-zone-data-for-mysql.html

于 2013-01-09T18:53:54.500 に答える
0

あはは!私の PHP サーバーと MySQL サーバーは異なるタイムゾーンを使用していました。date.timezone = America/New_York を php.ini ファイルに追加する必要がありました。

于 2013-01-09T19:49:20.730 に答える