加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails似乎是在created_at,updated_at值的错误

发布时间:2020-12-17 04:30:17 所属栏目:百科 来源:网络整理
导读:我刚刚使用表单创建了一个新对象,其updated_at和created_at值为 created_at: "2013-04-25 03:22:19",updated_at: "2013-04-25 03:22:19", 然而,这比我(PST)提前约7个小时. Time.now.to_s = "2013-04-24 20:23:12 -0700" 如何确保时区与用户创建时区的位置一
我刚刚使用表单创建了一个新对象,其updated_at和created_at值为
created_at: "2013-04-25 03:22:19",updated_at: "2013-04-25 03:22:19",

然而,这比我(PST)提前约7个小时.

Time.now.to_s
 => "2013-04-24 20:23:12 -0700"

如何确保时区与用户创建时区的位置一致?

解决方法

您的created_at和updated_at值将从服务器写入数据库,因此它们将始终位于服务器或应用程序的时区中.当服务器处理表单数据并保存到您的数据库时,它不知道浏览器的时区.

您可以使用config.time_zone设置Rails时区,如@lulalala建议的那样.

听起来您有兴趣在原生时区向用户显示时间.你有两个选择:

>请求您的用户注册时区(或指定默认区域并允许用户编辑)
>使用javascript检测时区并向服务器报告(http://josephscott.org/archives/2009/08/detecting-client-side-time-zone-offset-via-javascript/) – 不保证是正确的

将时区保存为用户属性后,您可以向用户显示您的时间,如下所示:

Model.created_at.in_time_zone(@current_user.time_zone)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读