Ich werde nicht auf die beste Lösung jemals vorgeben, aber das sollte funktionieren.
def valid_date?(date)
Date.parse(date).strftime("%d %b %Y %a") == date
end
[55] pry(main)> valid_date?("20 Jul 2016 Wed")
=> true
[56] pry(main)> valid_date?("20 Jul 2016 Mon")
=> false
[57] pry(main)>
Wenn Sie viele Formate haben, können Sie Format als zweites Argument
def valid_date?(date, fmt)
Date.parse(date).strftime(fmt) == date
end
=> :valid_date?
[59] pry(main)> valid_date?("20 Jul 2016 Wed", "%d %b %Y %a")
=> true
Hoffnung passieren, das wird helfen.
UPDATE
Wie ich in Kommentar erwähnt, dass Methodenname Überschneidungen mit bestehenden Verfahren valid_date?
So können Sie nur die benutzerdefinierte Methode
def date_valid?(date, fmt)
Date.parse(date).strftime(fmt) == date
end
[2] pry(main)> date_valid?("20 Jul 2016 Wed", "%d %b %Y %a")
=> true
Sie erhalten das Datum als Zeichenfolge oder ein Date-Objekt – SpunkyLive
@SpunkyLive String – mrg