PHPとMySQLタイムゾーンについてのまとめ


PHP スクリプト端の市街地設定は php.ini で設定します date.timezone キーの値は 'アジア/Shanghai' いいです。しかし、通常の共有仮想ホスト自体は変更されていません。 php.ini パーミッションこの時はプログラムの公共部分にini_を入れるべきです。set('date.timezone'、'アジア/Shanghai')動的修正 php.ini の設定を行います。その後、時間が正しいかどうかをテストしてもいいです。dump(date);サーバーのローカル時間が正しいなら、普通は問題を解決できます。付、PHP 5.1 以上は専用の関数を提供して対応するタイムゾーンを修正します。default_timezone_set('アジア/Shanghai')この関数を使用することを推奨します。対応 'アジア/Shanghai' 他にも使える大陸タイムゾーンはアジア/Chongqingです。 、アジア/シャアンハーイ 、アジア/Urumqi (重慶、上海、ウルムチの順に。香港と台湾は使えます。アジア/Macao、アジア/Hong_Kong、Asia/Taipei(マカオ、香港、台北)またシンガポール:アジア/Singappore;他の利用可能な値はEtc/GMT-8、Singappore、Hongkong、PRCです。外国人は北京を転勤したようです。しかし、私は修正に成功しました。 PHP エンドのタイムゾーン以降、日付が正確に記録されていないことが分かりました。この時はデータベースの問題かどうかを考えます。案の定、プログラム挿入の関数は起動されていません。 PHP の時間ではなく、直接使用します。 MySQL の CURRECT_TIMESTAMP。この時は修正できるかどうかを考えます。 MySQL タイムゾーンです参考になりました MySQL のドキュメントで、実行可能なものを発見しました。 SQL ステートメント:SET GLOOBAL time_zone = '+8:00'; そのうち '+8:00 東八区の表示方法です。他の都市は順次類推します。データベースモデルに修正文を挿入すると、権限が足りません。次はたくさんの語句を調整しました。例えば、DATE_ADD(UTC_TIMESTAMP()、 INTERVAL 8 HOUR;タイムゾーンの表示 SQL 文:SHOW ValABLES LIKE 'system_time_zoneなど。によって MySQL 権限の制限は完全な解決策ではない。私 Google 外国人のこれは非常に良い解決策があることを発見しました。しかし、彼はデータを挿入するごとに修正が必要です。 SQL 語句このような方案は非常に有効ではありません。一旦データベースのタイムゾーンが正常になったら、それに対応します。 SQL 語句はまた改めます。からには PHP 端末はもう時間の問題を正確に解決できます。MySQL データベースの面では対応する関数を使って解決できますが、後で他のホスト環境に移ったらまた元に戻ります。対応するフィールドは一つです。 TIMESTAMP タイプのデフォルトの値は CURRECT_TIMESTAMPはもちろん時間指定ができます。じゃ、私のやり方は私に任せます。 PHP 現在の正しい時間を挿入します。このように、プログラムの面では対応する修正が必要です。でも、後で配置を変えたら、一つだけ修正すればいいです。最後にデータベースを挿入する時間は書式に注意してください。 H:i:s')これで問題が解決できます。添付します。非常に良い参考資料があります。http://www.modwest.com/help/kb6-256.html  http://topic.csdn.net/t/20060503/07/4728521.html  http://www.phpchina.com/5173/viewspace_5132.  http://www.phpx.com/pth110355.php  更新:これにより wiLdGoose 兄は彼も同じ問題にぶつかると言いましたが、解決できません。結果はいろいろな仮説と判断を経て、最後には Zend スタジオ のタイムゾーン配置問題(私は狂汗ing)です。運行環境を除いても、開発環境は以下のように注意が必要です。今日もこの問題に遭遇しました。私はあなたより恵まれています。 GLOOBAL time_zone = '+8:00';  ふふ、残念です。使えません。 UNIX_TIMESTAMP() このような関数です