私は慢性を使用して、次のように解析された日付オブジェクトを返します。
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 のような日付オブジェクトに日付を付け、次のように 2 週間前の日付を返すことです。
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 日前)。
慢性を使用して、既存の日付のオフセットをまったく解析できますか?
解決策が慢性的ではない場合でも、これをどのように達成するのが最善ですか?
編集: Rails なしで Ruby 1.9.2 を実行しています。これらは厳格な Ruby スクリプトですが、仕事をするために必要な gem があれば喜んで含めます。