我使用慢性返回解析的日期对象,如下所示:
last_pay_date = Date.parse(Chronic.parse('2011-11-04').strftime("%Y-%m-%d"))
two_weeks_ago = Date.parse(Chronic.parse("two weeks ago").strftime("%Y-%m-%d"))
puts last_pay_date # 2011-11-04
puts last_pay_date.class # Date
puts two_weeks_ago # 2011-10-24
puts two_weeks_ago.class # Date
但我真正想要做的是约会一个像 last_day_date 这样的日期对象,并在两周前返回日期,如下所示:
two_weeks_ago = Date.parse(Chronic.parse("two weeks before #{last_pay_date}").strftime("%Y-%m-%d"))
与其他尝试一样,这将返回 nil,包括变量和硬编码:
last_pay_date = Date.parse(Chronic.parse('2011-11-04').strftime("%Y-%m-%d"))
two_weeks_ago = Chronic.parse("two weeks before #{last_pay_date}")
puts two_weeks_ago.class #NilClass
puts two_weeks_ago.nil? #true
two_weeks_ago = Chronic.parse("2 weeks before 2011-11-04 05:00:00")
puts two_weeks_ago.class #NilClass
puts two_weeks_ago.nil? #true
问题:
我可以使用慢性来解析现有日期对象的偏移量吗?(例如,此日期前 14 天,而不是 +14 天)。
我可以使用慢性来解析现有日期的偏移量吗?
即使解决方案不是慢性的,如何最好地实现这一点?
编辑:我正在运行没有导轨的 Ruby 1.9.2。这些都是 ruby 脚本,尽管我很乐意包含完成这项工作所需的任何 gem。