我在rails 3中有一个简单的搜索表单,它有两个日期字段。我在将这些日期记入我的mysql数据库时遇到问题。
我尝试使用american_date gem,在我的初始值设定项中指定日期格式,在config / locales / en.yml文件中,并直接在日期字段本身上指定日期。目前,我在视图中设置了rails批准的日期格式 -
<%= f.text_field :depart_date, :value=> Date.today.strftime('%Y-%m-%d') %>
我的数据库中的日期格式也是YYYY-mm-dd,所以事情应该顺利进行。
控制台告诉我两个日期字段都是class = "Date"
我想我已经找到了断开连接。从日志 -
Started POST "/searches" for 127.0.0.1 at 2013-10-30 17:43:26 -0400
Processing by SearchesController#create as HTML
Parameters: {"utf8"=>"√","search"=>{"depart_date"=>"2013-10-30",
"return_date"=>"2013-11-09"}
←[1m←[35m (0.0ms)←[0m BEGIN
←[1m←[36mSQL (0.0ms)←[0m ←[1mINSERT INTO `searches` (`depart_date`,`return_date`)
VALUES ('2013-30-10','2013-09-11')←[0m
←[1m←[35m (2.0ms)←[0m COMMIT
请注意,月份和日期值在insert语句中切换。我怎样才能防止这种情况发生?
答案 0 :(得分:0)
很可能您的时区设置不正确。 检查MySQL使用的时区以及Rails使用的时区。
您可以尝试在此类
中强制使用rails应用中的时区class Application < Rails::Application
config.time_zone = 'Eastern Time (US & Canada)'
end
答案 1 :(得分:0)