0

共有サーバーに保存されている Web サイトがあり、サーバーのオペレーティング システムに基づいてタイムゾーンが設定されています。これは 2 時間先です。

私はphp.iniを変更して試しました:

SET time_zone='-7:00'
SET time_zone='Canada/Mountain'

MySQL では動作しません。これを回避する方法はありますか?タイムゾーンをオーバーライドまたは設定するには?

私のホスティング会社のサポートは、すべての mysql セッションの開始時に「SET time_zone」を実行する必要があると言っていましたが、その意味が理解できず、非常に曖昧です。

4

2 に答える 2

1

データベースに接続した直後に行う必要があります。

EX の場合 (これは、PDO を使用している場合の単なる例であり、それに応じて変更できます):

    mysql_query("SET time_zone='-7:00'");

ここで言及したいのは、+/- 記号が不可欠であることです。たとえゼロであってもです。

また、Mysqlのドキュメントから:

「現在のセッションのタイムゾーン設定は、ゾーンに依存する時間値の表示と保存に影響します。これには、NOW() や CURTIME() などの関数によって表示される値、および TIMESTAMP 列に保存および取得される値が含まれます。

現在のタイムゾーン設定は、UTC_TIMESTAMP() などの関数によって表示される値や、DATE、TIME、または DATETIME 列の値には影響しません。」

この助けを願っています!

于 2012-10-22T07:28:14.800 に答える
0

php4 から php5 に移行すると、時間と日付に同様の問題が発生し、すべての時間関数が機能しなくなりました。解決策は、date_default_timezone_set('America/Los_Angeles'); を置くことです。コードの最初の行で。

于 2012-10-22T09:13:14.760 に答える