0

Ruby on Rails アプリケーションでプレーン テキストとして生年月日が必要です。だからここに私がそれを行うために使用しているコードの主要部分があります

   if @date_of_birth_as_text.present? and Date.parse(@date_of_birth_as_text).nil?
      errors.add :date_of_birth_as_text, "cannot be parsed"
    end

だから、それはすべてを日付にします。見てください、かなり変です

1.9.3p194 :002 > Date.parse("12 12 addd")
 => Sun, 12 Aug 2012 
1.9.3p194 :003 > Date.parse("12 12 october")
 => Fri, 12 Oct 2012 
1.9.3p194 :004 > Date.parse("12 13 october")
 => Sat, 13 Oct 2012 
1.9.3p194 :005 > Date.parse("13 13 october")
 => Sat, 13 Oct 2012 
1.9.3p194 :006 > Date.parse("13 13 2012")
 => Mon, 13 Aug 2012 
1.9.3p194 :007 > Date.parse("13 01 2012")
 => Mon, 13 Aug 2012 
1.9.3p194 :008 > Date.parse("10 01 2012")
 => Fri, 10 Aug 2012 
1.9.3p194 :009 > Date.parse("10 01 2010")
 => Fri, 10 Aug 2012 

少しずつ変えていきたいです。形式の日付"MM (any delimeter or not) dd (any delimeter or not) YYYY"または "dd (any delimeter) MM (any delimeter) YYYY"解析可能な日付が必要です。またはそのようなものですが、「12 12追加」ではありません。

どうすれば到達できますか?

PS私は慢性的な宝石を見ました、私にそれを提案しないでください。

4

1 に答える 1

0

Date.strptimeを使用してみてください:

1.9.3-p194 :017 > Date.strptime( '08-29-2012', '%m-%d-%Y' )
 => #<Date: 2012-08-29 ((2456169j,0s,0n),+0s,2299161j)> 

ドキュメント:http ://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#method-c-strptime

于 2012-08-29T07:12:45.693 に答える