【发布时间】:2014-04-01 01:44:51
【问题描述】:
如果用户以这种格式 MM/DD/YYYY 输入搜索值,则以下工作:
date = Date.strptime(search_value, "%m/%d/%Y")
如果用户这样输入,我该如何适应:
MM-DD-YYYY - 注意破折号而不是斜线 M-D-YYYY 月/日/年/年
目前,如果输入其中之一,我会得到一个无效的日期。我正在尝试涵盖所有不同的格式。
【问题讨论】:
标签: ruby-on-rails ruby
如果用户以这种格式 MM/DD/YYYY 输入搜索值,则以下工作:
date = Date.strptime(search_value, "%m/%d/%Y")
如果用户这样输入,我该如何适应:
MM-DD-YYYY - 注意破折号而不是斜线 M-D-YYYY 月/日/年/年
目前,如果输入其中之一,我会得到一个无效的日期。我正在尝试涵盖所有不同的格式。
【问题讨论】:
标签: ruby-on-rails ruby
date = Date.new(*search_value.scan(/\d+/).map(&:to_i).rotate(-1))
【讨论】:
如果您想覆盖所有基础,而不是重新发明轮子,请查看https://github.com/mojombo/chronic
【讨论】:
您可以使用 gsub 或 gsub!将破折号替换为斜线的方法: 例如:
"04-01-2014".gsub("-","/")
这会给你如下结果:
2014 年 4 月 1 日
我不知道您遇到的其他格式,如果您需要帮助,请 也显示其他格式。
【讨论】: