我应该如何处理Ruby on Rails中的估计日期?

时间:2010-06-23 16:34:16

标签: ruby-on-rails ruby

对于我的申请,我需要处理预计的日期,例如“1940年6月左右”需要被接受为1940年6月左右的正负2年。或者他们可以输入“约1940”需要被接受为加号或在1940年左右减去2年。以下是可能格式的完整列表。

  • 1940
  • Nov.1940
  • 十一月1940年
  • 1940年11月6日
  • 1940年11月6日
  • 关于(日期)
  • 生根粉。 (日期)
  • 说(日期)
  • BEF。 (日期)
  • 之前(日期)
  • 后。 (日期)
  • 之后(日期)
  • 介于(日期)和(日期)
  • 之间
  • 赌注。 (日期)和(日期)

我可以编写自己的解析器,但问题是我不知道如何处理奇怪的跨度。例如,如果他们说大约1940年我需要说1938-1942。或者对于1940年6月,我需要说1940年6月1日到1940年6月30日。我希望能够很好地搜索这个,这就是为什么我要把所有东西都转换成日期时间。是否有任何宝石可以处理这个或任何有关数据库中处理此问题的最佳方法的想法?

我尝试过Chronic,但它解析不正确,例如,如果你输入“1940”它认为今天是19:40。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我不确定你是否能够在不编写自己的解析器的情况下解决这个问题。我确实找到了这个,我没有用它,但它可能会让你开始。

http://github.com/technoweenie/relative_time_helpers