そのため、1か月前に、ホスティング会社からサーバーを購入しました。
情報は;
Linux Centos(最新バージョン)。
PhpMyAdmin、MySQL、その他すべての優れたものをインストールするZPanelをインストールしました。とにかく、サーバーの時刻を現地時間のGMTに変更できました。しかし、MySQLサーバーに設定しようとすると、適切な時間が表示されますが、
now()
pHPの関数では、時刻が現在の時刻より+1時間進んでいるため、システムをかなり混乱させます。
誰かがこれを修正する方法を知っていますか?数週間経ちましたが、まだ修正するものはありません:/
ありがとうございました。
サーバー時間を更新した後も、まったく同じ問題が発生しました。 MySqlサーバーを再起動するだけで、サーバーの時刻に合わせて時刻がリセットされました。
/etc/init.d/mysqld restart
リファレンス- https://major.io/2007/07/01/mysql-time-zone-different-from-system-time-zone/
私の場合、my.cnfのタイムゾーンの設定が間違っていました。正しい形式は次のとおりです。
default_time_zone=Europe/Riga
また、次のようにシェルを介してmysqlタイムゾーンを更新したことを確認してください。 https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
mysql_tzinfo_to_sql ...
を使用
IfサーバーとSQLサーバーを同期させることができない、PHPでは常にこの回避策を使用してください...
_$date = date('D jS M Y, G:i:s a', strtotime('-1 hour'));
_
now();
の代わりに
共有ホスティングを使用している場合は、サポートに連絡してデフォルトのタイムゾーンを変更することがよくあります。ixwebhostingで変更する必要があり、問題なく動作しました。
ただし、MySQLは「datetime」データ型フィールドをUTCとして内部的に格納しますが、PhpMyAdminはサーバーのデフォルト時間を使用して日付を表示するため、これは複雑です。これにより、混乱が生じることがよくあります。
PhpMyAdminのSQLステートメントの前に次の行を追加してみてください。
_SET @@session.time_zone='+00:00'; SELECT * FROM TableName
_
または
_SET time_zone = '+00:00'; SELECT now();
_
SUPER権限がある場合は、以下を使用してシステム時刻を設定することもできます。
_SET GLOBAL time_zone = '+00:00';
_
詳しくはこちらをご覧ください http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html 。