微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 Javascript 数据连接/链接到 rails 方法?

如何解决如何将 Javascript 数据连接/链接到 rails 方法?

我正在编写一个自定义 DateTime 方法获取 current web viewer 的时区并将所有时间视图设置为他/她的时区。

我如何获取本地时区

# index.html.erb

<%= get_time( getTimeZone(),entry.created_at) %>  # getTimeZone() => "Asia/Shanghai",wrong usecase
<%= get_time("Asia/Shanghai",entry.created_at) %>  # works like charm
 
<script>
     function getTimeZone() {
        return Intl.DateTimeFormat().resolvedOptions().timeZone
    }
</script>

下面我简单地将数据库UCT时间转换为用户本地时区,然后计算ago时差。

# application_helper.rb
def get_time(user_zone,created_at)
    user_Now = Time.find_zone(user_zone).Now
    created_at_local = created_at.in_time_zone(user_zone)

    difference = user_Now - created_at_local
    if 60 > difference
      difference.round.to_s + "s"
    elsif 3600 > difference
      (difference / 1.minute).round.to_s + "m"
    elsif 86400 > difference
      (difference / 1.hour).round.to_s + "h"
    else
      created_at_local.strftime("%b %d,%Y")
    end
  end

如何连接两者?或者我如何在 JS 中实现 rails 方法


我刚刚意识到 rails 可以逃避正斜杠??我认为它只是在路线上很奇怪。我尝试了所有形式的替代,但都无效。

"Asia/Shanghai" => ""

有任何位移吗?

解决方法

您可以使用 JavaScript 将 TimeZone 保存到 cookie,然后在 Rails 中读取 cookie 以获取 TimeZoneExample code

还有一个名为 Local Time 的宝石,您可能想看看。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。