У меня есть столбец datetime в db, который я хочу преобразовать в простую дату, когда я показываю ее пользователям.
Как я могу это сделать?
def shown_date # to_date не существует, но это то, что я ищу self.date || self.exif_date_time_original.to_date конец
ruby-on-rails
ruby
datetime
collimarco
источник
источник
Ответы:
DateTime#to_date
существует с ActiveSupport:источник
.to_date()
нет в стандартном рубине, поэтому мы должны найти обходной путь. Преобразование DateTime в Date с правильной строкой часового пояса (!!!) не изящно. Понять внутреннее устройство DateTime и Date непросто. Просто неистовствовать, игнорировать! :-)Привет, collimarco :), вы можете использовать метод ruby strftime для создания собственного отображения даты / времени.
time.strftime (строка) => строка
источник
В Ruby 1.9.2 и выше они добавили функцию .to_date в DateTime:
http://ruby-doc.org/stdlib-1.9.2/libdoc/date/rdoc/DateTime.html#method-i-to_date
Этот метод экземпляра не присутствует в более ранних версиях, таких как 1.8.7.
источник
Для старого Ruby (1.8.x):
источник
Недавно я написал жемчужину, чтобы упростить этот процесс и упорядочить ваши взгляды и т. Д.
Проверьте это на: http://github.com/platform45/easy_dates
источник
Попробуйте сначала преобразовать запись в строку. Если тип столбца базы данных - это дата, он будет сформирован как дата.
self.date || self.exif_date_time_original.to_s
источник