使用rails 3.0.7和ruby 1.9.2进行日期转换的问题

rb5*_*512 4 ruby date jquery-ui-datepicker ruby-on-rails-3 ruby-1.9.2

我正在使用datepicker在我的表单上插入日期,当然这会将日期作为字符串返回给控制器.问题是当我尝试将此字符串转换为日期时,我收到错误"无效日期"

Date.parse(params[:abc][:date])

为了验证我是否正确,我编写了以下ruby程序:

string_date = "06/18/2011"
date = Date.parse(string_date)
puts date

这完全没问题.但是当我在rails控制器中尝试相同的操作时,它会给出无效的日期错误.

请帮忙.

mu *_*ort 6

当我在我的Rails 3.1控制台中执行此操作时:

date = Date.parse("06/18/2011")
Run Code Online (Sandbox Code Playgroud)

我收到"ArgumentError:无效日期"异常.但是,它适用于ISO-8601日期:

date = Date.parse('2011-06-18')
Run Code Online (Sandbox Code Playgroud)

所以也许你有一个语言环境问题.您的脚本可能正在使用您的标准区域设置(可能是某些美国区域设置根据日期格式判断),但您的服务器可能正在使用其他内容.

尝试通过添加以下内容将jQuery datepicker日期格式更改为标准且明确的:

dateFormat: 'yy-mm-dd'
Run Code Online (Sandbox Code Playgroud)

到datepicker的选项.没有特殊的语言环境设置,datepicker的默认值是'mm/dd/yy'Ruby的Date类似乎不喜欢它.