J'ai une colonne datetime dans db que je veux transformer en une simple date lorsque je la montre aux utilisateurs.
Comment puis je faire ça?
def shown_date # to_date n'existe pas, mais c'est ce que je recherche self.date || self.exif_date_time_original.to_date fin
ruby-on-rails
ruby
datetime
collimarco
la source
la source
Réponses:
DateTime#to_date
existe avec ActiveSupport:la source
.to_date()
ne soit pas présent dans le rubis standard, nous devons donc contourner le problème. La conversion de DateTime en Date avec une chaîne de creux de fuseau horaire correcte (!!!) n'est pas élégante. Comprendre les éléments internes du DateTime et de la Date n'est pas facile. Juste déchaîné, ignorez! :-)Bonjour collimarco :) vous pouvez utiliser la méthode ruby strftime pour créer votre propre affichage de la date / heure.
time.strftime (chaîne) => chaîne
la source
Dans Ruby 1.9.2 et au-dessus, ils ont ajouté une fonction .to_date à DateTime:
http://ruby-doc.org/stdlib-1.9.2/libdoc/date/rdoc/DateTime.html#method-i-to_date
Cette méthode d'instance ne semble pas être présente dans les versions antérieures comme la 1.8.7.
la source
Pour l'ancien Ruby (1.8.x):
la source
J'ai récemment écrit un petit bijou pour simplifier ce processus et pour affiner vos points de vue, etc. etc.
Découvrez-le sur: http://github.com/platform45/easy_dates
la source
Essayez d'abord de convertir l'entrée en chaîne. Tant que le type de colonne de base de données est une date, il sera formaté en tant que date.
self.date || self.exif_date_time_original.to_s
la source