0

まず第一に、私の質問が単純すぎるように思われる場合は申し訳ありません。私は初心者にすぎません :-) 私は 2 つの部分に分割された地理位置情報アプリケーションを作成しました: OpenStreetMaps で携帯電話にマーカーを追加するために人々 が使用する Android 地理位置情報マップ。これらのマーカーを分析するために使用できるブラウザーからアクセス可能なベースマップとアプリケーション (たとえば、9 月 1 日から 9 月 4 日の間、または 9 月 1 日から 9 月 4 日の間、または特定の日の午前 8 時と午後 8 時)。この情報は、Postgresql データベースを使用してサーバーによって管理されます。サーバーはロンドンにありますが、マーカーを追加する人は地球上のどこにいてもかまいません。

では、ここで質問です。マップにマーカーを追加するとき、サーバーはどのようにして正しいタイムスタンプを認識し、各ユーザーの時刻が正確に登録され、正確な統計を実行できるようになるのでしょうか?

それほど多くのユーザーがいないため、私が一緒に働いている開発者は、Postgresql でユーザーのタイムゾーンを指定する方がよいと言いましたが、サーバー時間に + 2、- 2 などを追加することしか許可しませんでした。これは夏時間などを考慮していません。つまり、この時差を DST 日に手動で変更する必要があります。開発者は、ユーザーの電話で設定された時間が正しくない場合に備えて、これがより安全であると私に言いました.

しかし、開発者の友人は、これは正しい進め方ではなく、おそらくmoment.jsのようなJavaScriptを使用して、各ユーザーの電話で時間を送信する必要があると私に言いました。

夏時間のタイムゾーンを含むタイムゾーン情報を指定することが可能であるというPostgresqlのドキュメントも読んだので、私は混乱しています。私はこのタスクを自分で実行するための技術的なスキルを持っていないので、開発者に提供できるガイダンスをいただければ幸いです。これは、構築しようとしているアプリケーションにとって非常に重要です。

私の場合に従うべき標準的な手順に関する助けをいただければ幸いです。どうもありがとうございました。

よろしくお願いします、

フィリップ

<code>android<\code>
<code>mysql<\code>
<code>javascript<\code>
4

1 に答える 1

1

デバイス(電話の場合)は少し異なる可能性があり、独自のタイムゾーンを選択して送信すると、隣同士に立っている場合でもルート化されている場合でも大幅に異なる可能性があります.

これを行う最善の方法は、データベース側です。「CreationTime」のような TIMESTAMP 型のフィールドをテーブル内に作成し、そのテーブルを定義するときに、デフォルトを CURRENT_TIMESTAMP に設定します。

したがって、これですべての作業が行われ、コードを記述する必要さえありません。新しいレコードが挿入されるたびに、サーバーは時間を取得してそこに貼り付けます (後の編集時ではなく、作成時)。すべての時間は、既知の/制御可能なソースに関連しており、問題ありません。

編集:ああ、今「Postgresql」を見たところ、上記の構文はMySQL用です。似たようなコンセプトですが。

于 2013-08-06T18:20:35.250 に答える