如何使我的轨道时间输入字段遵循服务器时区



我在我的 Rails 应用程序中有一个日期/时间字段date_selecttime_select,我在开发模式下在本地运行。 我的问题是我输入的日期/时间与服务器实例的时区不一致。

例如,我的电脑时钟目前显示是 2013 年 9 月 19 日下午 5:34。 (我在中部时区,以防万一。 如果我填写的表单的值等于"2013 年 9 月 19 日下午 5:34",我看到解析为"2013-09-19 17:34:00 UTC"。 但是,Time.now返回"2013-09-19 17:38:00 -0600",Time.current返回"2013-09-19 23:38:58 UTC"。 基本上,该表单假设时间为 UTC,但没有将其与我的服务器的 UTC 时间(6 小时差异)对齐。

如何确保表单的输入转换为正确的区域偏移量?

表单不假定时间为 UTC。 它使用您设置的Rails应用程序的任何内容(默认为UTC)。 玩这个,直到你弄清楚它。 以下是我的机器。 操作系统采用太平洋标准时间 (-700)。Rails 应用程序设置为 UTC。

> Time.now
 => 2013-09-19 20:16:40 -0700
> Time.zone.now
 => Fri, 20 Sep 2013 03:16:42 UTC +00:00
> Time.parse("September 19, 2013 5:34 PM")
 => 2013-09-19 17:34:00 -0700
> Time.zone.parse("September 19, 2013 5:34 PM")
 => Thu, 19 Sep 2013 17:34:00 UTC +00:00
> Time.use_zone('America/Chicago') {Time.zone.parse("September 19, 2013 5:34 PM")}
 => Thu, 19 Sep 2013 17:34:00 CDT -05:00

相关内容

  • 没有找到相关文章

最新更新