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.years
dll.
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.years
dll.
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.days
selalu mengambil zona waktu sistem Anda sedangkan 10.days.from_now
akan mengambil zona waktu UTC jika tidak ada yang diatur dalam konfigurasi rel.
Time.zone.now
sebagai pengganti Time.now
.
days
,, years
dll., 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