Saya memiliki kolom datetime dalam db yang ingin saya ubah menjadi tanggal sederhana ketika saya menunjukkannya kepada pengguna.
Bagaimana saya bisa melakukan itu?
def ditampilkan_tanggal # to_date tidak ada, tapi itulah yang saya cari self.date || self.exif_date_time_original.to_date akhir
ruby-on-rails
ruby
datetime
collimarco
sumber
sumber
Jawaban:
DateTime#to_date
ada dengan ActiveSupport:sumber
.to_date()
tidak ada dalam ruby standar jadi kami harus melakukan solusi. Mengonversi dari DateTime ke Date dengan string palung zona waktu yang benar (!!!) tidaklah elegan. Memahami bagian dalam DateTime dan Tanggal tidaklah mudah. Hanya mengamuk, abaikan! :-)Halo collimarco :) Anda dapat menggunakan metode ruby strftime untuk membuat tampilan tanggal / waktu Anda sendiri.
time.strftime (string) => string
sumber
Di Ruby 1.9.2 dan yang lebih baru, mereka menambahkan fungsi .to_date ke DateTime:
http://ruby-doc.org/stdlib-1.9.2/libdoc/date/rdoc/DateTime.html#method-i-to_date
Metode instance ini tampaknya tidak ada di versi sebelumnya seperti 1.8.7.
sumber
Untuk Ruby lama (1.8.x):
sumber
Saya baru-baru ini menulis permata untuk menyederhanakan proses ini dan untuk merapikan pandangan Anda, dll.
Lihat di: http://github.com/platform45/easy_dates
sumber
Coba ubah entri menjadi string terlebih dahulu. Selama tipe kolom database adalah tanggal maka akan diformat sebagai tanggal.
self.date || self.exif_date_time_original.to_s
sumber