4

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

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

为了验证我是否做得对,我编写了以下 ruby​​ 程序:

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

这工作得很好。但是当我在我的 rails 控制器中尝试同样的事情时,它会给出无效的日期错误。

请帮忙。

4

1 回答 1

6

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

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

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

date = Date.parse('2011-06-18')

因此,也许您遇到了语言环境问题。您的脚本可能正在使用您的标准语言环境设置(根据日期格式判断,这可能是某些美国语言环境),但您的服务器可能正在使用其他设置。

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

dateFormat: 'yy-mm-dd'

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

于 2011-06-22T03:13:17.480 回答