我正在使用datepicker在我的表单上插入日期,当然这会将日期作为字符串返回给控制器。 问题是当我尝试将此字符串转换为日期时,我收到错误“无效日期”
Date.parse(params[:abc][:date])
为了验证我是否正确行事,我写了以下ruby程序:
string_date = "06/18/2011"
date = Date.parse(string_date)
puts date
这完全没问题。但是当我在rails控制器中尝试相同的操作时,它会给出无效的日期错误。
请帮忙。
答案 0 :(得分:6)
当我在Rails 3.1控制台中执行此操作时:
date = Date.parse("06/18/2011")
我收到“ArgumentError:invalid date”异常。但是,它适用于ISO-8601 date:
date = Date.parse('2011-06-18')
所以也许你有一个语言环境问题。您的脚本可能正在使用您的标准区域设置(可能是某些美国区域设置根据日期格式判断),但您的服务器可能正在使用其他内容。
尝试通过添加以下内容将jQuery datepicker date format更改为标准且明确的内容:
dateFormat: 'yy-mm-dd'
到datepicker的选项。 datepicker的默认值为'mm/dd/yy'
,Ruby的Date class似乎不喜欢没有特殊的语言环境设置。