Saya mencoba melakukan sesuatu seperti
Time.now + 5.days
tetapi itu tidak berhasil, meskipun samar-samar saya ingat pernah melihat, dan sangat terkesan, karena dapat melakukan sesuatu seperti 2.yearsdll.
Bagaimana cara melakukannya di Rails 3?
Saya mencoba melakukan sesuatu seperti
Time.now + 5.days
tetapi itu tidak berhasil, meskipun samar-samar saya ingat pernah melihat, dan sangat terkesan, karena dapat melakukan sesuatu seperti 2.yearsdll.
Bagaimana cara melakukannya di Rails 3?
Jawaban:
Menggunakan
Time.now + 10.days
atau bahkan
10.days.from_now
Keduanya pasti berhasil. Apakah Anda yakin Anda menggunakan Rails dan bukan hanya Ruby?
Jika Anda benar-benar berada di Rails, dari mana Anda mencoba menjalankan ini? Perhatikan bahwa Dukungan Aktif harus dimuat.
Time.now + 10.daysselalu mengambil zona waktu sistem Anda sedangkan 10.days.from_nowakan mengambil zona waktu UTC jika tidak ada yang diatur dalam konfigurasi rel.
Time.zone.nowsebagai pengganti Time.now.
days,, yearsdll., adalah bagian dari Dukungan Aktif, Jadi ini tidak akan berfungsi irb, tetapi harus berfungsi rails console.
require 'active_support/time'di awal sesi atau sebelum Anda menggunakan perintahnya
Beberapa opsi lain, hanya untuk referensi
-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)
Cantumkan saja semua opsi yang saya tahu:
[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10
Jadi sekarang, apa bedanya jika kita peduli dengan zona waktu:
[1, 4] Dengan zona waktu sistem[2, 3] Dengan config zona waktu aplikasi Rails Anda[5] Tanggal hanya tidak ada waktu yang disertakan dalam hasilCoba ini di Rails
Time.new + 10.days
Coba ini di Ruby
require 'date'
DateTime.now.next_day(10).to_time