3

私は今何時間も検索しましたが、これまで誰もその問題を抱えていなかったようです。

2台のサーバーで、現在のタイムスタンプをデータベースに書き込むスクリプトを実行します。どちらも同じOS、ソフトウェア、...、同じタイムゾーンを持っています。

いくつかのタイムスタンプと現在のtime()の差が負の数であることがわかりました(はい、計算は正しいですtime() - $older_timestamp:)

両方のサーバーにtime()をダンプした結果、正確に1時間異なります。見てみな:

time()は常にUTCベースである必要があるため、これがどのように発生するかを説明することはできません。

誰かが何か考えを持っていますか?

アーヘンからのご挨拶

4

3 に答える 3

6

どうやらサーバー1とサーバー2は異なる時間に設定されています。BIOSサーバーのOS時間を確認してください。

于 2012-12-20T18:54:03.720 に答える
1

メリーフェストに追加するために、私はあなたに別のオプションを与えます。

OSのタイムゾーンが正しく設定されていない可能性があります。両方の時計が同じ時刻を示しているが、一方のサーバーがロンドンにあると考え、もう一方のサーバーがアーヘンにあると考えている場合、システムコールから返されるUTC時間は1時間異なります。

ただし、インストールする場合はNTPD、これは何も起こらないと言ってください。(いつもの)

于 2012-12-20T19:09:50.040 に答える
0

php.iniこれは、Apacheのタイムゾーンが正しく設定されていないことが原因である可能性があります。php.iniファイルを確認しdate.timezone =て、タイムゾーンに変更します。PHPのタイムゾーンのリストはここにあります:http://php.net/manual/en/timezones.php

例えば:

date.timezone = 'America/Chicago'

ファイルを直接ini_set編集できない場合は、を使用できる場合もあります。php.ini

ini_set('date.timezone', 'America/Chicago');
于 2012-12-20T18:58:37.060 に答える