Bagaimana saya menghitung jumlah hari antara dua tanggal ini?
start_date = Date.parse "2012-03-02 14:46:21 +0100"
end_date = Date.parse "2012-04-02 14:46:21 +0200"
Dengan kelas Date (dan DateTime) yang dapat Anda lakukan (end_date - start_date).to_i
untuk mendapatkan perbedaan jumlah hari.
Time
objek memang kembali beberapa detik.Time
objek, bukanDate
objek. Mungkin Anda dapat memperbarui penamaan dalam komentar Anda untuk mencerminkan bahwa mereka bukan tanggal?Dengan asumsi itu
end_date
danstart_date
keduanya adalah kelasActiveSupport::TimeWithZone
di Rails, maka Anda dapat menggunakan:sumber
(Time.zone.now.to_date - 23.hours.ago.to_date).to_i
, ia memberi 1 dan seharusnya 0Time.zone.now.to_date
mengembalikan "Rab, 15 Nov 2017", sementara23.hours.ago.to_date
mengembalikan "Sel, 14 Nov 2017". Perbedaan dalam jumlah hari adalah dan harus 1 kecuali Anda menjalankan kode Anda pada jam sebelum tengah malam.Rails memiliki beberapa bantuan bawaan yang mungkin bisa menyelesaikan ini untuk Anda. Satu hal yang perlu diingat adalah bahwa ini adalah bagian dari Actionview Helper, sehingga mereka tidak akan tersedia langsung dari konsol.
Coba ini
sumber
Saya terus mendapatkan hasil dalam hitungan detik, jadi ini berhasil bagi saya:
sumber
1.day
tidakruby
seperti yang diminta OP (dalam tag). IniRails
atau lebih spesifikactive support
meskipuncreated_at
pada dasarnya adalahModel
metode untukRails
itu ..untuk mendapatkan jumlah hari dalam rentang waktu (hanya hitungan semua hari)
untuk mendapatkan jumlah hari antara 2 tanggal
sumber
Tidak satu pun dari jawaban sebelumnya (hingga tanggal ini) yang memberikan perbedaan yang benar dalam hari antara dua tanggal.
Salah satu yang paling dekat adalah dengan obligasi itu . Jawaban lengkap akan dikonversi
to_i
dan kemudian bagi:Dalam contoh spesifik pertanyaan, seseorang tidak boleh menguraikan
Date
jika waktu berlalu relevan. GunakanTime.parse
sebagai gantinya.sumber
Untuk memiliki jumlah hari penuh antara dua tanggal (
DateTime
objek):sumber
Untuk mendapatkan perbedaan jumlah hari berdasarkan dua tanggal:
sumber
sumber