2017-01-04 3 views
0

私はスケジューリングに取り組んでいます。私のタイムゾーンはGMT +0100 CETです。私は現地時間の午前9時に月曜日に利用可能です。ユーザーは自分の時間でそれを見ているので、私は調整するその時間を希望しかし訪問者のタイムゾーンを取得

。これは、それが時間を変える可能性があることを意味するが、日も。彼らがGMT -10:00ハワイならF.ex。

コントローラを介して訪問者のタイムゾーンを取得するために私のための方法はありますし、その後使用して時刻を表示:

@datetime_given.in_time_zone(visitors_time_zone)

それとも

が、これは全く異なる方法で行われるべき?

+1

私はJavascriptを使用して、あなたはそれが自分のタイムゾーンが何であるかをユーザーに尋ねるために、おそらく一般的に良いでしょう –

+0

訪問者に保存されているものを持っていないと仮定し、それをクライアント側をやってアプローチを示唆しています。ユーザーはタイムゾーンを移動したり、何らかの形でそれを偽装することができます。 –

答えて

0

これはアプリの設定によって異なります。タイムゾーンを匿名ユーザーに変更する場合は、gem 'momentjs-rails'を使用できます。あなたが訪問者のローカルタイムゾーンの時刻を表示したいとあなたは彼らがサインインまたはあなたのウェブサイトにログインしたくないとしましょう。たとえば、サーバーはヨーロッパ地域にあります。あなたの意見では、時間が解析され、(次のものが来るまで前/現在の月曜日)DateTime.parse()は月曜日のみを示しています。

//= require moment 

    $(document).ready(function() { 
    var format = 'LL hA'; 
    $('.time').each(function() { 
     this.textContent = moment(this.textContent).format(format); 
    }); 
}); 
:訪問者のタイムゾーンに瞬間ライブラリとフォーマット日時を必要と

<h1>My schedule:</h1> 
<div class="timestring"> 
    I'm available on Mondays 9 AM my local time.<br> 
    Converted in your local timezone: <span class="time"><%= DateTime.parse("Mon 09:00 +01") %></span> 
</div> 

application.jsアドオンで、momentjs-rails gemをインストールした後

上記のコードは些​​細で、worksです。ハワイにコンピュータの日付と時刻の設定を変更してみてください、と日付&タイムゾーンは変更が反映されます。繰り返しますが、設定とアプリケーションのロジックによって異なります。登録ユーザーとタイムゾーンを操作しますか?

関連する問題