こんばんは
当然のことですが、両方のマシンで日付と時刻を確認しましたか?
編集: ...そして、MySQL タイムゾーンは両方のマシンで同じでしたか?
更新:わかりました。問題は、UNIX_TIMESTAMP に渡されるタイムスタンプ文字列が現在のタイムゾーンの値であると解釈され、UTC に変換されるという事実にあります。MEZ にいるため、UTC に戻すために 2 時間が減算されます。そのため、タイムスタンプが Unix タイムストリングに変換されるときに、タイムスタンプから 7200 が差し引かれます。
したがって、UNIX_TIMESTAMP() を使用して変換するときに表示されるバリエーションは、Unix Epoch タイムストリングに戻ります。
ところで、DATETIME タイプの代わりに、UTC_TIMESTAMP を保存するために TIMESTAMP タイプを使用すべきではありませんか?
更新:格納された時間からプレゼンテーション時間を分離することは、間違いなく進むべき道です。その後、世界中で同じデータを再利用でき、データをユーザーに提示するときに現地時間との間で変換するだけで済みます。
これを行わないと、タイムスタンプが作成されたときにタイムゾーンを保存する必要があり、次の場合に解決しなければならないあらゆる種類の複雑な順列に入る必要があります。
- ローカル タイムゾーンが保存されたときは夏時間でした。
- データが保存された時点のタイムゾーンと、データが表示されるタイムゾーンの違いは何ですか。
すべてを UTC として保存しておくと、それがなくなります。
ほとんどのユーザーは、返された UTC 時間に基づいてローカル時間を自分で計算しなければならない場合、それほど満足しません。そのため、システムは通常、ユーザーの現在のローカル時間に変換します。
これはもちろん、ユーザーがデータを現地時間で表現したい場合であり、通常はそうです。私が考えることができる唯一の広く使用されているシステムで、そのデータを UTC で保存して表示するシステムは、常に UTC (より正確には ZULU 時間) に保持される航空管制とフライト プラン管理のシステムです。 .
HTH
乾杯、