ユーザーがメッセージを投稿できる小さなフォーラムを作成しました。私のサーバーは米国にありますが、フォーラムのユーザーベースは台湾にあります (+15 時間)。
誰かがフォームに投稿すると、mySQL データベースに時刻を YYYY-MM-DD HH:MM:SS の形式で保存します。データベースを見てみると、時刻は正確な時刻(台湾の人が投稿した時刻)を表示しています。
ただし、UNIX_TIMESTAMP を使用してデータベースから日付を取得すると、時刻が変更されます。
例:
- フォーラムに何か投稿します。私の腕時計の日時は 2009-10-2 11:24am (台湾時間) です。
- データベースを調べると、datetime は 2009-10-2 11:24am と表示されています (私の腕時計と同じ時間です。いいですね!)
- 次に、UNIX_TIMESTAMP を使用して Web サイトに日付を表示すると、2009-10-03 4:22 pm と表示されます (悪い! オフセットが適用されました)。
データベースから日付を照会するときに、UNIX_TIMESTAMP で時刻の変換 (オフセットの適用) を停止する方法はありますか?
追加情報:
PHP を使用して
います PHP のタイムゾーンを台湾に設定しました (date.timezone = Asia/Taipei)
ユーザーが台湾以外のタイムゾーンにいる場合、時刻を台北時間に変換します。このサイトはほぼ 100% 台湾で使用されているため、別のタイムゾーンにいても常に台湾の時間を表示したいだけです。
サイト内のさまざまな場所にさまざまな date() 形式で日付を表示しています。
基本的に、UNIX_TIMESTAMP を使用してデータをクエリするときに時間にオフセットが適用されることを除いて、すべてがうまく機能します。
ありがとう!