ASPでアプリケーションサービスを提供しているものです。


今度たまたまですが共用でアプリケーションを稼働させているサーバに海外の方を格納させることになりました。

現在までのところアプリケーションで活用する「時間」という概念についてはサーバ自体が保有している時間をNOWを使ってとっていたのですが(これはあくまで日本時間ですので)海外の方に対しては時差を考慮しなければならなくなりました。

プログラムを修正すれば問題ないのですが、実のところ修正範囲が数多く負担が大きいため躊躇しております。

どなたかよいツールや方法をご存知の方がいらっしゃったら教えて頂きたく思います。

要点は共用サーバにて、時間を取る場合に国等考慮しそれぞれ異なる時間を取る方法です。何卒よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:2009/04/01 18:04:24
  • 終了:2009/04/08 18:05:02

回答(2件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332009/04/01 18:15:23

ポイント35pt

共用サーバにて、時間を取る場合に国等考慮しそれぞれ異なる時間を取る方法

“時間をとる”のはクライアントですよね。サーバのローカル時間は、そのサーバが設置されている国の地域時間(日本の場合は日本標準時)だけです。

となると、サーバ側ではそのクライアントが存在している国が分からないと、時差を計算して、クライアントがいる地域のローカル時間を返してあげることができません。


IPアドレスやユーザーエージェントからある程度の類推はできますが、完全ではありません。

もし会員制サイトなら、その会員が住んでいる国を登録させることで、その国のローカル時間を返すことはできるでしょう。

その場合、一般論としては、RFC3339形式の日時表記を使います。

下記サイトを参考にしてください。

id:kobazumi

ご回答ありがとうございます。助かります。

私の質問がとんちんかんでしたら申し訳ありません。

国は一応分かっているのですが、プログラムを直接修正するのではなくサーバの日本時間を

そのお客様だけちょっとしたスクリプトなどで海外時間に変更してくれるツールがあれば助

かります。

例えばアメリカのASP事業者ですと、アメリカって広いので場所によって随分時差が生じて

しまうと思います。その場合サーバ時間ではなくなんらかの方法によりその方にあった時間を

返しているように思われます。それはそもそもプログラムで行っているのでしょうか?

私の質問がとんちんかんな可能性があります。できればもう少し具体的に教えて頂けるとありが

たいです。

2009/04/01 18:38:38
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/04/01 19:15:23

ポイント35pt

その場合サーバ時間ではなくなんらかの方法によりその方にあった時間を返しているように思われます。

サーバからRFC3339形式の日時を返し、クライアント側で変換するのが普通です。


クライアントOSをインストールするとき、地域(locale)を指定しますよね。(日本の場合は1種類しかないので、あまり意識していないかもしれませんが)

そのクライアントのlocaleと、サーバから送られてくるRFC3339形式の日時から、クライアントのローカル時間を計算して表示します。これはクライアントサイド・スクリプトで処理するものなので、そのアプリケーションに合わせて作ってやらなければなりません。単純にツールを入れて実現できるものではありません。


たとえば、JavaScriptで実装するなら「RFC3339 to JavaScript Date Object」のような方法があります。

id:kobazumi

ありがとうございます。本当に感謝します。自分なりに調べて実装してみます。お例申し上げます。

2009/04/02 07:10:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません