Ich habe eine Datums- / Uhrzeitspalte in der Datenbank, die ich in ein einfaches Datum umwandeln möchte, wenn ich sie Benutzern zeige.
Wie kann ich das machen?
def gezeigt_Datum # to_date existiert nicht, ist aber das, wonach ich suche self.date || self.exif_date_time_original.to_date Ende
ruby-on-rails
ruby
datetime
Collimarco
quelle
quelle
Antworten:
DateTime#to_date
existiert mit ActiveSupport:quelle
.to_date()
es in Standard-Rubin nicht vorhanden ist, also müssen wir es umgehen. Das Konvertieren von DateTime nach Date mit der richtigen Zeitzonen-Trog-Zeichenfolge (!!!) ist nicht elegant. Das Verständnis der Interna von DateTime und Date ist nicht einfach. Nur toben, ignorieren! :-)Hallo Collimarco :) Sie können die Ruby Strftime- Methode verwenden, um Ihre eigene Datums- / Zeitanzeige zu erstellen.
time.strftime (string) => string
quelle
In Ruby 1.9.2 und höher wurde DateTime eine .to_date-Funktion hinzugefügt:
http://ruby-doc.org/stdlib-1.9.2/libdoc/date/rdoc/DateTime.html#method-i-to_date
Diese Instanzmethode scheint in früheren Versionen wie 1.8.7 nicht vorhanden zu sein.
quelle
Für alten Ruby (1.8.x):
quelle
Ich habe kürzlich ein Juwel geschrieben, um diesen Prozess zu vereinfachen und Ihre Ansichten usw. zu verbessern.
Überprüfen Sie es unter: http://github.com/platform45/easy_dates
quelle
Versuchen Sie zuerst, den Eintrag in eine Zeichenfolge zu konvertieren. Solange der Datenbankspaltentyp ein Datum ist, wird er als Datum formatiert.
self.date || self.exif_date_time_original.to_s
quelle