我实现了http://thisbythem.com/blog/clientside-timezone-detection/。以下是关键文件/代码:
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
<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&amp; jstz.main.js到app / assets / js。首次访问网站时正确设置了时区cookie,但是如果我更改系统时区并刷新,我就不会看到cookie中的更改。另外,如果我到了js控制台并执行:
tz=jstz.determine();
tz.name();
...我在这里也没有看到更新的时区设置。同时,如果我删除cookie并刷新,那么我会得到新的时区。
答案 0 :(得分:0)
原来我正在使用jstz文件。我已经删除了jstz.main.js而不是jstz.js供参考这里是你需要的: