このプロジェクトを最も単純な用語に要約します。
- ユーザーがボタンをクリックすると、NOW()のタイムスタンプでレコードが作成されます。
- NOW()はもちろん、サーバーでのレコード作成の時間と同じです。
- 私は彼らに私のものではなく、彼らのタイムゾーンに基づいた統計を表示する必要があります。
MySqlでタイムゾーンオフセットを調整解除するための最良の方法は何ですか?オフセットを処理するように設計された特定のフィールド形式はありますか?
私は次の線に沿って物事を実行する必要があります:
SELECT DATE_FORMAT(b_stamp, '%W') AS week_day, count(*) AS b_total, b_stamp
FROM table
WHERE
(b_stamp >= DATE_SUB(NOW(), INTERVAL 7 DAY))
AND
(user_id = '$user_id') GROUP BY week_day ORDER BY b_stamp DESC
ユーザーにどのタイムゾーンにいるのかを尋ねたくはありません。JSがこのデータをブラウザーから引き出す唯一の方法だと思います。たぶん、彼らがモバイルデバイス上にあり、これがWebベースのアプリではない場合、私はそこに到達することができますが、それはこれが進む方向ではないかもしれません。
私は、それらのオフセットを決定し、変数を「server_time」+/-their_offsetに設定するのが最善の方法であると考えています。これにより、サーバーが別の場所にあるように見えます。コードに追加する必要のある+/-ロジックがなく、コードを混乱させて醜くするので、これが最善だと思います。
一方、これにより、データはデータベースに配置され、タイムスタンプが全面的に表示されます。
提案?