У меня есть номер http://thisbythem.com/blog/clientside-timezone-detection/. Вот ключевые файлы/код:Часовой пояс jstz в Rails, похоже, не обновляется, если пользователь меняет системный часовой пояс
приложение/контроллеры/application_controller.rb
around_filter :set_timezone
...
private
def set_timezone
if(current_learner)
timezone = Time.zone = current_learner.time_zone
else
timezone = Time.find_zone(cookies[:timezone])
end
Time.use_zone(timezone) { yield }
end
приложение/просмотров/макеты/application.html.erb
<script class="code" type="text/javascript">
$(function() {
$('#flash_notification').hide().delay(500).slideDown('slow', function() {
$(this).delay(4000).fadeOut();
});
$("#flash_notification").live('click', function(){
$(this).stop().fadeOut();;
});
});
//set event times for non-auth users
var tz = jstz.determine();
$.cookie('timezone', tz.name(), { path: '/' });
</script>
В дополнение к выше добавленной JQuery .cookie.js & jstz.main.js к приложению/активам/js. Файл cookie часового пояса устанавливается правильно при первом посещении сайта, однако, если я изменю часовой пояс системы и обновляюсь, я не вижу изменения в cookie. Кроме того, если я попал в консоль Js и сделать:
tz=jstz.determine();
tz.name();
... Я не вижу обновленный часовой пояс настройки и здесь. В то же время, если я удалю файлы cookie и обновить, тогда я получу новый часовой пояс.
Вы можете попробовать перемещение JS код установки куки 'уаг TZ = jstz.determine(); $ .cookie ('timezone', tz.name(), {path: '/'}); 'inside' $ (function() {' –