2010-06-23 97 views
1

对于我的申请,我需要处理估计的日期,例如“约1940年6月”需要在1940年6月前后被接受为正负两年。或者他们可以输入“约1940年”需要被接受为正或负大约在1940年的2年。以下是可能的格式的完整列表。我应该如何处理Ruby on Rails中的估计日期?

  • 1940年
  • Nov.1940
  • 1940年11月
  • 6 Nov.1940
  • 1940年11月6日
  • 关于(日期)
  • 生根粉。 (Date)
  • say(date)
  • bef。 (日期)
  • 之前(日期)
  • 船尾。 (日期)
  • 后(日期)
  • 之间(日期)和(日期)
  • 赌注。 (日期)和(日期)

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

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

任何想法?

谢谢。

+0

这是相当具体的,你可能会淘汰这个解析器在一个小时或更少。你有一个非常明确的可能性。只是写它。 – BobbyShaftoe 2010-06-23 18:44:32

回答

0

我不确定你是否能够在不编写自己的解析器的情况下摆脱这种困境。我确实发现了这一点,我没有使用它,但它可能会让你开始。

http://github.com/technoweenie/relative_time_helpers

+0

是的,这将有所帮助,我的展示不是问题,有没有人有任何想法建立某种好的数据库模型? – Joe 2010-06-23 19:10:28