2017-01-04 9 views
0

Итак, я работаю над планированием. Мой часовой пояс GMT +0100 CET, и я доступен по понедельникам в 09:00 по местному времени.Получение часового пояса посетителей

Однако я бы хотел, чтобы это время было настроено так, чтобы пользователь видел его в свое время. Это означает, что это может изменить время, но и день. F.ex, если они GMT-10: 00 Гавайи.

Есть ли способ для меня, чтобы получить временную зону для посетителей с помощью контроллера, а затем показывают время с помощью:

@datetime_given.in_time_zone(visitors_time_zone)

Или это должно быть сделано по-другому целиком?

+1

Я бы предложил подход с использованием Javascript и сделать это на стороне клиента, предположив, что у вас нет ничего, что хранится на посетителе. –

+0

Возможно, обычно лучше спросить пользователя, каков его часовой пояс. Пользователь может перемещать временные интервалы или может каким-то образом спутать его. –

ответ

0

Это зависит от настройки вашего приложения. Вы можете использовать gem 'momentjs-rails', для изменения часового пояса анонимным пользователям. Предположим, вы хотите показать время в локальном часовом поясе посетителей, и вы не хотите, чтобы они вошли в систему или вошли на ваш сайт. Например, ваш сервер находится в регионе Европы. В ваших взглядах вы разобраны время и DateTime.parse() показывают только понедельники (Предыдущий/текущий понедельник до следующего приходит):

<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> 

После установки momentjs-rails gem в application.js оных требуется библиотека момента и формат DateTime к часовому поясу посетителей:

//= require moment 

    $(document).ready(function() { 
    var format = 'LL hA'; 
    $('.time').each(function() { 
     this.textContent = moment(this.textContent).format(format); 
    }); 
}); 

Этот код является тривиальным, и он works. Попробуйте изменить настройки даты и времени вашего компьютера на Гавайи, а дата & часовой пояс будет отражать изменения. Опять же, это зависит от вашей настройки и логики приложения. Хотели бы вы манипулировать часовым поясом с зарегистрированными пользователями?

Смежные вопросы