获取访客时区

时间:2017-01-04 14:51:40

标签: ruby-on-rails

所以我正在进行日程安排。我的时区是GMT +0100 CET,我当地时间星期一上午9:00可以使用。

但是我想要调整时间,以便用户在他们的时间看到它。这意味着它可以改变时间,但也可以改变一天。 F.ex如果他们是GMT -10:00夏威夷。

我有办法通过控制器获取访客时区,然后使用以下方式显示时间:

columns

或者这应该以完全不同的方式完成?

1 个答案:

答案 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中向访问者时区添加需要时刻库和格式化日期时间:

   //= require moment

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

上面的代码很简单,只有works。尝试将计算机的日期和时间设置更改为夏威夷,以及日期和时间。时区将反映变化。同样,这取决于您的设置和应用程序逻辑。你想和注册用户一起操作时区吗?

相关问题