Javascript 在我的服务器上部署Rails时,时间总是落后一天

Javascript 在我的服务器上部署Rails时,时间总是落后一天,javascript,ruby-on-rails,ruby,ajax,date,Javascript,Ruby On Rails,Ruby,Ajax,Date,我有一个日历,当用户在某一天单击时,我通过ajax将javascript时间变量传递给rails控制器 这在本地运行良好,但当部署到我的服务器上时,日期似乎比我单击的日期晚了一天 当我最初加载带有日历的页面时,它会显示正确的日期,并且我使用:day=Time.now.to\u date.to\u s(:db) 当用户单击日历中的某一天时,会使用以下js语句: start_date: Math.floor(new Date(date).getTime()/1000) 也就是说: 13625496

我有一个日历,当用户在某一天单击时,我通过ajax将javascript时间变量传递给rails控制器

这在本地运行良好,但当部署到我的服务器上时,日期似乎比我单击的日期晚了一天

当我最初加载带有日历的页面时,它会显示正确的日期,并且我使用:
day=Time.now.to\u date.to\u s(:db)

当用户单击日历中的某一天时,会使用以下js语句:

start_date: Math.floor(new Date(date).getTime()/1000)
也就是说:

1362549600
并将其半轴传递到rails控制器方法:

start_date = Time.at(params[:start_date].to_i).to_date.to_s(:db)
logger.info "start_date = #{start_date}"
logger.info "time = #{Time.at(params[:start_date].to_i).to_datetime.to_s(:db)}"
记录器输出为:

start_date = 2013-03-05
time = 2013-03-05 22:00:00
start_date = 2013-03-06
time = 2013-03-06 00:00:00
我在config/application.rb中设置了时区:

config.time_zone = 'Central Time (US & Canada)'
有没有关于如何解决这个问题的建议?我是否使用了错误的方式将日期从js传递到rails

编辑

顺便说一下,在我的javascript代码片段中,
date
最初是
Wed Feb 06 2013 00:00:00 GMT-0600(CST)

我刚才检查的另一件事是我的服务器时间,它是PDT,而我实际坐在中心时间

$ date
Tue Mar 19 16:51:52 PDT 2013
我还发现,在本地运行我的应用程序时,我的记录器输出为:

start_date = 2013-03-05
time = 2013-03-05 22:00:00
start_date = 2013-03-06
time = 2013-03-06 00:00:00

这就是昨天和今天的区别。我不确定我应该改变什么来解决这个问题

Time.at
将使用服务器系统时间,以及ruby中的所有日期和时间函数

config.time\u zone
实际上仅用于在数据库中存储日期(读或写)时进行日期转换。请参阅了解更多关于此的信息


我认为,如果您在服务器上运行
irb
,并尝试
Time.at(1362549600).utc_offset/60/60
,您将不会得到预期的-6小时时区偏移量,而会得到您似乎得到的-2小时时区偏移量。

不确定您在JS date()函数中传递的是什么,但您在计算机上是否也正确设置了时间,因为javascript将使用本地计算机时间,除非日期变量以某种方式来自服务器端?请参阅我的编辑。我不确定
date
是来自用户浏览器还是服务器。我使用的是fullcalendar jquery插件,可能是一个javascript日期,它使用本地计算机的时间。你设置对了吗?另外,你在对日期进行除法和取整,你确定这不足以使你的日期减少一天吗?我肯定我的电脑时钟设置正确。这是我当地的时间。基本上,在我的功能中,我不在乎时间。我只是在用户单击的那一天之后。基本上,我只是在用户单击的日期(忽略时间)之后,这样我就可以运行一个查询,获取用户单击的那一天的所有时间段。啊,你的链接帮助了我。我所需要做的就是打电话给Time.zone.at.…,现在它就可以工作了。