如何解决如何将 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 以获取 TimeZone
。 Example code
还有一个名为 Local Time 的宝石,您可能想看看。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。