3

私は、ユーザーがFacebookの資格情報を使用してログインできるWebサイトを開発しています。

現在、日付と時刻の問題に直面しています。私のローカルシステムは、Facebookが使用しているものとは異なる「ロマンス標準時」を使用しています。

私がローカルにいる場合はDSTを使用し、時期に応じてUTC+1またはUTC+2のいずれかになります。

私の質問は、「Facebookの時間を、UTC+1とUTC+2の間の時折の変更を考慮して、ローカルシステムが使用する形式に変換するにはどうすればよいですか?」です。

4

2 に答える 2

3

このドキュメントによると、ユーザーがタイムゾーンを変更する唯一の方法は、コンピューターのタイムゾーンを変更し、ログアウトしてFacebookに再度ログインすることです。これは、彼らがブラウザのJavaScriptでUTCからのオフセットを取得し、それをサーバーに返しているだけだと私に信じさせます。

したがって、timezoneFacebook Graph APIから返されるフィールドの値は、ユーザーが最後にログインしたときのオフセットである可能性があります。

また、ユーザーがサインアップした日付のオフセットを表し、変更できない可能性もあります。ドキュメントに参照が見つからなかったので、確認するために実験する必要があります。

どちらのレートでも、オフセットだけからタイムゾーンを導出することはできません。同じオフセットを持つ多くのタイムゾーンがあります。有用な例えについては、ここで関連する主題に関する私の答えを参照してください。

于 2013-01-21T15:54:20.597 に答える
1

Facebookの時代に対処することは困難です。これが私の経験です:

  • のように24文字のISO8601タイムスタンプが返さ2013-01-17T08:00:00+0000れると、UTCからのオフセットが定義されます。これを解析して、ローカルオフセットに変換する必要があります。
  • のようなUnixタイムスタンプを取得した場合、それはPHPで1358694451定義されたタイムゾーン にあります。America/Los_Angeles
  • 19文字以下のISO8601タイムスタンプを取得した場合、2013-01-17または2013-01-17T08:00:00時刻がその時刻のオブジェクトのロケールを基準にしている場合、またはオブジェクトにロケールがない場合は、America/Los_Angelesタイムゾーンにあります。

私はac#開発者ではありませんが、このMSDNの記事はタイムゾーンの変換に役立つ可能性があります。http://msdn.microsoft.com/en-us/library/bb397769.aspx

于 2013-01-21T16:22:11.460 に答える