2011-07-14 12 views
0

現在、MYSQLデータベースに日付をPHPタイムスタンプ(整数フィールド)として保存しています。しかし、データベースから取得してPHPの日付関数を使用すると、クライアントのタイムゾーンに基づいて正しい時刻が表示されます。PHPタイムスタンプと異なる日付と時刻を別のタイムゾーンで表示

たとえば、私は東洋時間でJul 14 2011 22:17:05であるPHPタイムスタンプ1310674625(DBから取得)を表示します。したがって、以下のコードでPHPでタイムスタンプを表示すると太平洋標準時間帯のWebページを表示する人はJul 14 2011 19:17:05と表示されますか?

echo date('M d Y H:i:s', 1310674625); 
+0

を使用することができますクライアントのタイムゾーンを決定し、それを正しくフォーマットする – Ibu

答えて

1

いいえ。日付は、ユーザーの時刻ではなく、サーバーの時刻とタイムゾーンに従って表示されます。

サイトでユーザーがタイムゾーンを指定できるようにオプションを提供したり、IPに基づいてジオロケーションを使用しようとすると、出力を調整できます。

this postによれば、ユーザーのタイムゾーンを確実に判断できない可能性があるため、最良の結果を得るには、ユーザーからの入力が必要な場合があります。

EDIT(コメントでより多くの情報の要求に基づいて)

あなたが出力に選択したタイムゾーンが必要な場合は、次のいずれかのオプションを使用することができます。

echo date('e'); // Examples: UTC, GMT, Atlantic/Azores (Available in version 5.1.0 and later 
echo date('O'); // Different in Greenwich meantime. Example: +0200 
echo date('T'); // Timezone abbreviation. Examples: EST, MDT ... 

を参照してください。詳細については、dateのマニュアルページを参照してください。

EDIT 2:

が "指定されたタイムゾーンに日付を印刷" するにはあなたが必要となります。

  1. は、タイムスタンプ(time()
  2. として現在の日付をゲットするユーザーのタイムゾーンオフセット
  3. mktimeを使用して、必要に応じてユーザーのオフセットを加算または減算します。
  4. date()を使用して、結果を人間が判読可能な形式に変換し直します。
+0

Heh、13秒速く:) – genesis

+0

PHPで指定されたタイムゾーンに日付を印刷する方法はありますか? – peter

+0

@PeterBZ:追加情報については、私の最新の回答をご覧ください。 –

-1

使用date_default_timezone_setあなたは、ユーザーのタイムゾーン

を知っていればまた、あなたは私がなぜuはUTCとして保存し、JavaScriptを使用していけない、それはそのように動作すると思ういけないJavascriptの日(ここでは、印刷スタンプ)

+0

これは、サーバー上のスクリプトで使用されるデフォルトのタイムゾーンを設定しますが、ユーザーの場所に基づいてデータには影響しません。 –

+0

ユーザーに自分のタイムゾーンを問い合わせることができます – RiaD

関連する問題