2012-04-13 2 views
1

私はDATETIMEタイプの私のデータベースで日付を格納からの現地時間を返すために、どのように、など探して:はYmd H:I:SPHP:データベース

私は何を達成したいことは、データベース内の日付を返すことですユーザーの現地時間たとえば、ユーザーがフランスにいる場合は、タイムゾーンを返します。これは、ユーザーのタイムゾーンを保存せずにこれを達成することは可能ですか?それ以外にも可能で、データベースの格納形式を変更する必要がある場合は、それを行うことができます。しかし、私はユーザーのタイムゾーンを保存せずにこれを達成しようとしています。

答えて

1

まあ、私は自分のタイムゾーンをユーザーに求めることなく、それをやって考えることができる唯一の方法はこれです:

<p>The time is: <span id="time" data="<?php echo strtotime($time_from_db); ?>"></span></p> 
<script type="text/javascript"> 
    (function() { 
     var t = document.getElementById('time'), d = new Date(); 
     d.setTime(t.getAttribute("data")); 
     t.innerHTML = d; 
    })(); 
</script> 

これがに(タイムゾーンを含む)ロケールを適用し、その後JSタイムスタンプ、と日時を渡します。

+0

時間をタイムスタンプとしてデータベースに保存することをお勧めしますか? – Darko

+0

私はタイムスタンプを使うのが好きですが、フォーマットされた日付ではなく数値として値を入力しない限り、実際には違いはありません。 –

2

データベースにUTCで時刻を格納し、アプリケーションでタイムゾーンのローカリゼーションを行います。あなたは、ユーザーのタイムゾーンを知る必要があります。

+0

...とアカウント夏時間に取る

EDIT:この

date_default_timezone_set('UTC'); $today = getdate(); print_r($today); 

チェック。 –

+0

@EdHeal:それは正しいです。私はあなたがJSで 'getTimezoneOffset()'メソッドを使ってサーバに報告するならば、DSTがすでにオフセットにあると考えています。 – FtDRbwLXw6

+0

マシンのクロックが正しく設定されていると仮定します。公共のマシン(このようなもの)は3時間22分です! –