一部のデータを MySQL データベースに挿入する PHP MySQL クエリがあり、タイムスタンプが含まれています。
現在、INSERT
クエリはNOW()
タイムスタンプ列に使用され、次の形式でデータベースに保存されます。2012-07-24 13:13:02
残念ながら、サーバーは私のタイムゾーンにありません。示されているように、America/Los_Angeles としてリストされています。print date_default_timezone_get();
私は次のことを望んでいました:
date_default_timezone_set('Europe/London');
$timefordbLondonEU = date('Y-m-d H:i:s', time());
;$timefordbLondonEU
の代わりに をデータベースに保存するだけです。NOW()
これはそのようなデータを保存する良い方法ですか?
どうもありがとう、
リチャード
[追加テキスト]
MySQL db の Type を に変更DateTime
し、次のことを行いました。
date_default_timezone_set('Europe/London');
$timefordbLondonEU = date('Y-m-d H:i:s', time());
それは機能していますが、まだ全体的なコンセプトをまだ理解していません。
Assumptions based on your comments:
- MySQL = データ型 UTC を持たず、単純に型 INT を使用します。
- Unix_TimeStamp() は現在の時刻またはカウントを保存しますか? 1343247227 などの UTC 形式。
- UTC は一般的な 0 ポイントからのカウントであるため、そこから任意のタイムゾーンを取得できます。1970 年の基準 0 ポイントより前の日付が必要ないと仮定します。
あなたが言ったことからの私の推測とリードは、UTC として時間を INT (1343247227) として保存し、そこから必要なタイムゾーンを生成することです。ここでも、1970 年の参照 0 ポイントより前の日付を保存する必要はないと仮定します。
同様に、既知のタイムゾーンでdatetime YYYY-MM-DD HH:MM:SSとして保存してから、UTCまたは他のタイムゾーンに変換しないでください。それはすべてかなり面倒です=(